List based on PythonArray 구현
from asyncio.windows_events import NULL
class ArrayList :
def __init__( self ) :
self.items = []
def insert(self, elem, pos) :
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) :
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) :
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 += lst
def display(self, msg='ArrayList:'):
print(msg, '항목수:',self.size(),self.items)
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(정리후): ")