자료구조 - Circular LinkedList: 빙글빙글
2023-06-11 13:48:00
마지막 노드의 링크가 첫 번째 노드를 가리키는 리스트
한 노드에서 다른 모든 노드로 접근 가능
헤드포인터가 마지막 노드를 가리키게끔 구성해 리스트의 처음/마지막에 노드를 삽입하는 연산 용이
처음에 삽입

ListNode* insert_first(ListNode* head, element data) { ListNode *node = (ListNode *)malloc(sizeof(ListNode)); node->data = data; if (head == NULL) { // 공백상태 head = node; node->link = head; } else { node->link = head->link; head->link = node; } return head; }1
2
3
4
5
6
7
8
9
10
11
12
13
14끝에 삽입

ListNode* insert_last(ListNode* head, element data) { ListNode *node = (ListNode *) malloc(sizeof(ListNode)); node->data = data; if (head == NULL) { head = node; node->link = head; } else { node->link = head->link; head->link = node; head = node; } return head; }1
2
3
4
5
6
7
8
9
10
11
12
13
14원형 연결 리스트를 이용해 원형 큐 개발도 가능