ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อแปลงรายการที่เชื่อมโยงเพียงอย่างเดียวเป็นรายการที่เชื่อมโยงแบบวงกลม
สำหรับสิ่งนี้เราจะได้รับรายชื่อที่เชื่อมโยงโดยลำพัง งานของเราคือการนำองค์ประกอบของรายการนั้นมาแปลงเป็นรายการเชื่อมโยงแบบวงกลม
ตัวอย่าง
#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; }
ผลลัพธ์
Display list: 17 22 13 14 15