줄 세워져 있는 데이터
기본 자료구조
로 제공한다.
- i번 자리에 원소 x를 삽입한다.
- i번 원소를 삭제한다.
- 원소 x를 삭제한다.
- i번 원소를 알려준다.
- 원소 x가 몇 번 원소인지 알려준다.
- 리스트의 사이즈(원소의 총 수)를 알려준다.
파이썬 기본 제공
insert(i, x)
🠔 i번 자리에 원소 x를 삽입한다. (맨 앞자리 0번)append(x)
🠔 원소 x를 리스트의 맨 뒤에 추가한다.pop(i)
🠔 리스트의 i번 원소를 삭제하면서 알려준다.remove(x)
🠔 리스트에서 (처음으로 나타나는) x를 삭제한다.index(x)
🠔 원소 x가 리스트의 몇 번 원소인지 알려준다.clear()
🠔 리스트를 깨끗이 청소한다.count(x)
🠔 리스트에서 원소 x가 몇 번 나타나는지 알려준다.extend(a)
🠔 리스트에 나열할 수 있는 객체 a를 풀어서 추가한다.copy()
🠔 리스트를 복사한다.reverse()
🠔 리스트의 순서를 역으로 뒤집는다.sort()
🠔 리스트의 원소들을 정렬한다.
사용 예
list = []
list.insert(0, 'test')
list.insert(0, 'sample')
list.insert(1, 'mid')
list.append('end')
print(list)
>>> ['sample', 'mid', 'test', 'end']
배열
로 구현되어 있으므로 배열의 한계를 거의 그대로 가진다.파이썬
은 이럴 경우에 자동으로 더 큰 배열을 생성하고 기존 배열을 새 배열로 복사합니다.연결 리스트
가 이를 회피합니다.동적 할당 방식
__head
🠔 첫 번째 노드에 대한 레퍼런스__numItems
🠔 연결 리스트에 들어 있는 원소의 총 수
insert(i, x)
🠔 i번 자리에 원소 x를 삽입한다. (맨 앞자리 0번)append(x)
🠔 원소 x를 연결 리스트의 맨 뒤에 추가한다.pop(i)
🠔 연결 리스트의 i번 원소를 삭제하면서 알려준다.remove(x)
🠔 연결 리스트에서 (처음으로 나타나는) x를 삭제한다.get(i)
🠔 연결 리스트의 i번 원소를 알려준다.index(x)
🠔 원소 x가 리스트의 몇 번 원소인지 알려준다.isEmpty()
🠔 연결 리스트가 빈 리스트인지 알려준다.size()
🠔 연결 리스트의 총 원소 수를 알려준다.clear()
🠔 연결 리스트를 깨끗이 청소한다.count(x)
🠔 연결 리스트에서 원소 x가 몇 번 나타나는지 알려준다.extend(a)
🠔 연결 리스트에 나열할 수 있는 객체 a를 풀어서 추가한다.copy()
🠔 연결 리스트를 복사한다.reverse()
🠔 연결 리스트의 순서를 역으로 뒤집는다.sort()
🠔 연결 리스트의 원소들을 정렬한다.
배열 리스트
는 시작부터 고정된 크기를 지정합니다.
연결 리스트
는 원소가 들어오는 대로 공간을 할당받아 넣습니다.
배열 리스트
는 연속된 공간에 원소를 저장합니다
연결 리스트
는 공간의 연속성이 없습니다.
배열 리스트
는 다음 원소에 대한 링크가 없습니다.
연결 리스트
는 다음 원소의 링크를 위한 공간이 추가로 필요합니다.
배열 리스트
외 연결 리스트
둘 다 검색 시 평균 Θ(n)의 시간이 걸립니다.
원소들이 크기순으로 정렬되어 있는 경우라면 배열 리스트
에서 최악에 경우에도 Θ(log n) 시간에 검색이 가능합니다.
원소들이 크기순으로 정렬되어 있는 경우라면 연결 리스트
에서 최악에 경우에도 Θ(n) 시간에 검색이 가능합니다.
원형 연결 리스트
양방향 연결 리스트