반응형
언젠가의 자료구조 수업에서 진행했던 과제이다.
파이썬 리스트를 별도 파일에서 클래스로 구현하고, 이를 다른 파일에서 모듈로 불러와 사용한다.
리스트를 배열 - 클래스 스타일로 구현
<코드 본문>
class ArrayList:
def __init__(self ):
self.items=[]
def insert(self,pos,elem):
self.items.insert(pos,elem)
def delete(self,pos):
return self.items.pop(pos)
def isEmpty(self ):
return self.size()==0
def getEntry(self,pos):
return self.items[pos]
def size(self):
return len(self.items)
def clear(self):
self.items=[]
def find(self,item):
return self.items.index(item)
def replace(self,pos,elem):
self.items[pos]=elem
def sort(self):
self.items.sort()
def merge_1(self,lst):
self.items.extend(lst)
def merge_2(self, otherArryList):
self.items.extend(otherArryList.items)
def display(self,msg='ArrayList:'):
print(msg,'항목수=',self.size(),self.items)
init - 요소들을 저장할 items 리스트를 생성한다
insert - pos로 입력된 인덱스에 elem을 삽입하고 리턴한다
delete - pos로 입력된 인덱스의 요소를 삭제하고 리턴한다
isEmpty - 리스트가 비어있다면 True, 그렇지 않다면 False를 리턴한다
getEntry - pos로 입력된 인덱스의 요소를 리턴한다
size - 리스트 내 요소의 개수(리스트의 길이)를 리턴한다
clear - 리스트 내 요소를 모두 지운다. (초기화 하는 것과 동일하다)
find - item으로 입력받은 요소의 인덱스를 반환한다
replace - pos 인덱스의 요소를 elem으로 바꾼다
sort - 오름차순으로 요소를 정렬한다
merge - 인자로 입력받은 lst를 items 리스트 우측에 병합한다.
merge_2 - 입력받은 otherArryList 우측에 items를 병합한다
클래스 테스트 진행
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(삽입*5): ')
s.sort()
s.display('파이썬 리스트로 구현한 List(정렬후): ')
s.replace(2,90)
s.display('파이썬 리스트로 구현한 List(교체*1): ')
s.delete(2)
s.delete(s.size()-1)
s.delete(0)
s.display('파이썬 리스트로 구현한 List(삭제*3): ')
lst1=[1,2,3]
s.merge_1(lst1)
s.display('파이썬 리스트로 구현한 List(병합후): ')
lst=ArrayList()
lst.insert(0,6)
lst.insert(0,5)
lst.insert(0,4)
s.merge_2(lst)
s.display('파이썬 리스트로 구현한 List(병합후): ')
s.clear()
s.display('파이썬 리스트로 구현한 List(클리어): ')
결과
파이썬 리스트로 구현한 리스트 테스트 항목수= 0 []
파이썬 리스트로 구현한 List(삽입*5): 항목수= 5 [20, 30, 50, 10, 40]
파이썬 리스트로 구현한 List(정렬후): 항목수= 5 [10, 20, 30, 40, 50]
파이썬 리스트로 구현한 List(교체*1): 항목수= 5 [10, 20, 90, 40, 50]
파이썬 리스트로 구현한 List(삭제*3): 항목수= 2 [20, 40]
파이썬 리스트로 구현한 List(병합후): 항목수= 5 [20, 40, 1, 2, 3]
파이썬 리스트로 구현한 List(병합후): 항목수= 8 [20, 40, 1, 2, 3, 4, 5, 6]
파이썬 리스트로 구현한 List(클리어): 항목수= 0 []
반응형
'코딩 > Python' 카테고리의 다른 글
VSCode / Python 파이썬 설치 개발 환경 세팅(윈도우) (0) | 2023.09.30 |
---|