Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình chuyển đổi một danh sách được liên kết đơn lẻ thành danh sách được liên kết vòng tròn.
Đối với điều này, chúng tôi sẽ được cung cấp một danh sách liên kết duy nhất. Nhiệm vụ của chúng ta là lấy các phần tử của danh sách đó và chuyển nó thành một danh sách liên kết vòng tròn.
Ví dụ
#include <bits/stdc++.h> //node structure of linked list struct Node { int data; struct Node* next; }; //converting singly linked list //to circular linked list struct Node* circular(struct Node* head){ struct Node* start = head; while (head->next != NULL) head = head->next; //assigning start to the head->next node //if head->next points to NULL head->next = start; return start; } void push(struct Node** head, int data){ //creation of new node struct Node* newNode = (struct Node*)malloc (sizeof(struct Node)); //putting data in new node newNode->data = data; newNode->next = (*head); (*head) = newNode; } //displaying the elements of circular linked list void print_list(struct Node* node){ struct Node* start = node; while (node->next != start) { printf("%d ", node->data); node = node->next; } printf("%d ", node->data); } int main(){ struct Node* head = NULL; push(&head, 15); push(&head, 14); push(&head, 13); push(&head, 22); push(&head, 17); circular(head); printf("Display list: \n"); print_list(head); return 0; }
Đầu ra
Display list: 17 22 13 14 15