연결리스트 3

[C언어] 원형 연결리스트

🔵원형 연결리스트 마지막 노드가 첫 번째 노드를 가리킴 하나의 노드에서 다른 모든 노드로의 접근 가능 > 단순 연결리스트보다 삽입, 삭제 더 용이해짐 > 삽입,삭제 시 선행 노드를 항상 알아야함 헤드 포인터가 마지막 노드 가리킴 🟡 원형 연결리스트 코드 #include #include typedef int element; typedef struct { element data; struct ListNode* link; }ListNode; void print_list(ListNode* head) { ListNode* p; if (head == NULL) {// 마지막 노드인 경우 return; } p = head->link; do { printf("%d->", p->data);// 앞쪽 노드부터 출력 p =..

Algorithm 2023.01.12

[C언어] 연결리스트 큐 Linked Queue

공백 상태 > front와 rear가 NULL값 🟡 연결리스트로 구현한 큐 코드 #include #include typedef int element; typedef struct { element data; struct StackNode* link; }QueueNode; typedef struct { QueueNode* front, *rear; } LinkedQueueType; void init(LinkedQueueType* s) { s->front = s->rear = 0; } int is_full(LinkedQueueType* s) { return 0; } int is_empty(LinkedQueueType* s) { return (s->front == NULL); } void push(LinkedQu..

Algorithm 2023.01.12

[C언어] 연결리스트 스택 Linked Stack

연결리스트 장점 > 크기 제한X 🟡 연결리스트로 구현한 스택 코드 #include #include typedef int element; typedef struct { element data; struct StackNode* link; }StackNode; typedef struct { StackNode* top; } LinkedStackType; void init(LinkedStackType* s) { s->top = NULL; } int is_full(LinkedStackType* s) { return 0; } int is_empty(LinkedStackType* s) { return (s->top == NULL); } void push(LinkedStackType* s, element item) { ..

Algorithm 2023.01.12
728x90