자료구조 : 구현 :: Array List

horiz.d·2022년 4월 12일
0

자료구조

목록 보기
3/26

List based on PythonArray 구현


from asyncio.windows_events import NULL



class ArrayList : 
  def __init__( self ) :
    self.items = []

  def insert(self, elem, pos) :
    
    # self.items.insert(pos,elem)
    self.items.append(NULL)
    for i in range(len(self.items)-2,pos-1,-1):
      self.items[i+1] = self.items[i]
    self.items[pos] = elem

  def delete(self, pos) :
    # self.items.pop(pos)
    for i in range(pos,len(self.items)-1):
      self.items[i] = self.items[i+1]
    self.items.pop(-1)

  def getEntry(self,pos) :
    return self.items[pos]

  def isEmpty(self):
    return self.size() == 0

  def size(self) :
    return len(self.items)

  def clear(self) :
    self.items = []

  def find(self,item) :
    #self.items.index(elem)
    for i in range(self.size()):
      if self.items[i] == item :
        return i 
        
  def replace(self, pos, elem) :
    self.items[pos] = elem

  def sort(self) :
    self.items.sort()

  def merge(self, lst) :
    #self.items.extend(lst)
    self.items += lst

  def display(self, msg='ArrayList:'):
    print(msg, '항목수:',self.size(),self.items)



Test Code

#Test Code
s = ArrayList()
s.display('파이썬 리스트로 구현한 리스트 테스트')
s.insert(0, 10)
s.insert(0, 20)
s.insert(1, 30)
s.insert(s.size(), 40)
s.insert(2, 50)
s.display("파이썬 리스트로 구현한 List(삽입x5): ")
s.sort()
s.display("파이썬 리스트로 구현한 List(정렬후): ")
s.replace(2, 90)
s.display("파이썬 리스트로 구현한 List(교체x1): ")

print("find 90 pos: ", s.find(90))
print("find 15 pos: ", s.find(15))

s.delete(2);	s.delete(s.size() - 1);	s.delete(0)
s.display("파이썬 리스트로 구현한 List(삭제x3): ")
lst = [ 1, 2, 3 ]
s.merge(lst)
s.display("파이썬 리스트로 구현한 List(병합+3): ")
s.clear()
s.display("파이썬 리스트로 구현한 List(정리후): ")
profile
가용한 시간은 한정적이고, 배울건 넘쳐난다.

0개의 댓글