연결리스트
-
연결리스트 (2)알고리즘/이론정리 2021. 9. 9. 19:21
연결리스트는 삽입과 삭제가 유연하다는 것이 가장 큰 장점이다. (1)에서는 특정번째를 지정하여 원소를 삽입/삭제하는 연산을 구현해보았다면, (2)에서는 특정원소의 바로 다음을 지정하여 원소를 삽입/삭제하는 연산을 정의하고 구현해 볼 것이다. 그러자면, 맨 앞에 원소를 추가 (삽입) 하거나 맨 앞의 원소를 제거 (삭제) 하는 연산을 지정하기가 애매해짐 이런 경우에도 동일한 방법을 적용하기 위해서, 이번에는 연결 리스트의 맨 앞에다가 데이터 원소를 담고 있지 않은, 그냥 자리만 차지하는 노드 -dummy node 리스트를 정의하자 0번째 노드에 dummy node를 정의하자..! class Node: def __init__(self, item): self.data = item self.next = None ..
-
연결리스트(Linked Lists)알고리즘/이론정리 2021. 9. 8. 18:32
연결리스트 (Linked Lists) - 선형배열이 번호가 붙여진 칸에 원소들을 채워넣는 방식이라고 하면, 연결리스트는 각 원소들을 줄줄이 엮어서 관리하는 방식임 - 연결리스트는 원소들이 링크라고 불리는 고리로 연결되어 있으므로, 가운데를 끊어 하나를 삭제하거나 삽입하기가 쉬움 - 하지만 메모리 소요가 큼 추상적 자료구조 Data ex) 정수, 문자열 ,레코드 ..... A set of operations ex) 삽입 삭제 순회/ 정렬 탐색 Node - data - link(next) 리스트의 맨앞 : head 리스트의 맨끝 : tail class Node: def __init__(self, item): self.data = item self.next = None class LinkedList: def ..