카테고리 없음

[DataScience Computing] List ADT

터틀넥 2024. 4. 23. 14:36

1️⃣ List ADT

✔ 1. Data

  • 동일한 유형의 요소들을 순서대로 모아놓았음

✔ 2. Operations

• List(): 데이터를 추가하기 위해 빈 list를 선언한다.
• insert(pos, e): pos 위치에 새 요소 e를 삽입한다.
• delete(pos): 위치 pos에서 요소를 제거하고 반환한다.
• isEmpty(): 목록이 비었는지 확인한다.
• getEntry(pos): pos 위치에 있는 요소를 반환한다.
• size(): 목록의 요소 수를 반환한다.
• clear(): list를 빈 상태로 초기화한다. 
• find(item): 목록에서 항목을 검색하고 해당 index를 반환한다.
• replace(pos, item): pos 위치의 요소를 item으로 교체한다. 
• sort(): 기준에 따라 목록의 요소를 정렬한다.
• merge(lst): 다른 목록의 요소를 목록에 추가한다.
• display(): 목록의 요소를 화면에 출력한다.
• append(e): 목록 끝에 새 요소를 추가한다.

 

 

 

2️⃣ 전역 변수 및 함수를 사용한 List의 구현(Python)

 

items = []			#리스트 항목 저장을 위한 파이썬 리스트

def insert(pos, elem):			#pos위치에 새로운 요소 item을 삽입한다.
	items.insert(pos,elm)		#파이썬 리스트 클래스의 insert 연산

def delete(pos):				#pos위치에 있는 요소를 꺼내고 반환한다.
	retrun items.pop(pos)		#파이썬 리스트 클래스의 pop 연산

def getEntry(pos) : return items[pos]	#pos번재 항목 반환
def isEmpty():	return len(items) == 0  #크기가 0 : true, 아니면 false 반환
def size():		return len(items)		#리스트의 크기 반환. len() 함수 사용
def clear():	items = []				#items를 초기화 --> 이건 오류날 듯
def find(item) : return items[pos] = elem	#pos번째 항목 변경
def sort() : items.sort()					#정렬(sort 메소드 이용)
def merge(lst) : items.extend(lst)			#병합(확장)
def display(msg='ArrayList'):				#출력 : 디폴트 인수 사용
	print(msg, size(), items)				#메시지+크기+배열내용 출력

 

 

3️⃣ 테스트 코드