반응형
새 노드를 뒤쪽에 삽입하는 원형 연결리스트의 C언어 코드입니다.
#include <stdio.h>
#include <stdlib.h>
// 원형 연결 리스트의 노드를 나타내는 구조체
struct Node {
int data;
struct Node* next;
};
// 새 노드 생성 함수
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// 뒤쪽에 노드 추가 함수
struct Node* insertAtEnd(struct Node* head, int data) {
struct Node* newNode = createNode(data);
if (head == NULL) {
newNode->next = newNode; // 처음 노드가 생성될 때, 자기 자신을 가리킴
return newNode;
}
newNode->next = head->next; // 새 노드가 첫 노드를 가리키게 함
head->next = newNode; // 현재 끝 노드가 새 노드를 가리키게 함
return newNode;
}
// 원형 연결 리스트 출력 함수
void display(struct Node* head) {
if (head == NULL) {
printf("리스트가 비어있습니다.\n");
return;
}
struct Node* current = head;
do {
printf("%d -> ", current->data);
current = current->next;
} while (current != head);
printf(" (head)\n");
}
int main() {
struct Node* head = NULL;
// 뒤쪽에 몇 개의 노드 추가
head = insertAtEnd(head, 100);
head = insertAtEnd(head, 200);
head = insertAtEnd(head, 300);
head = insertAtEnd(head, 400);
head = insertAtEnd(head, 500);
// 원형 연결 리스트 출력
printf("원형 연결 리스트: ");
display(head);
return 0;
}
반응형
'C_C++' 카테고리의 다른 글
(C언어) 자료구조: 연결리스트(linked list)로 표현한 큐(queue) (0) | 2023.10.26 |
---|---|
(C언어) 자료구조: 배열로 큐(Queue) 표현하기, 장점 단점 (0) | 2023.10.25 |
(C언어) 퀵 정렬(quick sort) (0) | 2023.07.10 |
(C언어) 지정된 폴더의 파일 목록 출력하기 (0) | 2023.07.10 |
(C/C++) 사칙연산 계산하기 (0) | 2023.07.09 |