본문 바로가기

Linked List2

연결 리스트 (Linked List) 연결 리스트란? 연결 리스트는 배열과 함께 가장 기본이 되는 선형 자료 구조로 다양한 추상 자료형을 통한 구현이 되어 있다. 배열과 마찬가지로 자료의 순서는 정해져 있으나 연결 구조를 사용하기에 물리 메모리를 연속적으로 사용하지 않아도 되기에 관리가 수월하다. 보통 단방향 연결 리스트 (Singly Linked List)와 양방향 연결 리스트 (Doubly Linked List)가 많이 사용되며 그 밖에도 다양한 연결 리스트 종류가 있다. 연결 리스트 연산의 시간 복잡도 is_empty(): O(1) 리스트가 비어 있는지 확인하는 연산으로 노드의 head가 비어 있다면 true 아니면 false를 추출 prepend(): O(1) 리스트 가장 앞에 새로운 요소를 추가 하는 연산으로 배열에서처럼 인덱스를 .. 2021. 4. 12.
원형 연결 리스트 (Circular Linked List) 리스트에는 다양한 종류가 있습니다. 그 중 원형 연결 리스트(Circular Linked List)라고 불리는 자료구조를 다뤄볼건데요! 우선 원형 연결 리스트의 특징은 마지막에 추가된 노드가 헤드 노드를 가리켜 결국 리스트가 끝나지 않고 무한히 순환하는 구조를 가지고 있습니다. 예를들어, 노드가 하나가 추가되면 반복적으로 같은 노드를 순환하는 구조이며 세 개의 노드 A, B, C가 있다고 하면 A노드는 B노드를, B노드는 C노드를 , 마지막으로 C노드는 A노드를 가리켜 무한히 순환하는 구조를 가지고 있습니다. 자, 그럼 만들어 보겠습니다! # 기본적으로 사용하게될 노드 클래스 생성 class Node: def __init__(self, value, next): self.value = value self... 2021. 3. 27.