C++實現迴圈單鏈表程式
迴圈單鏈表是一種資料結構,它由使用自引用結構建立的節點組成。每個節點包含兩個部分,即資料和對下一個連結串列節點的引用。
只需要第一個連結串列節點的引用就可以訪問整個連結串列。這被稱為頭節點。連結串列中的最後一個節點指向連結串列的頭節點或第一個節點。這就是它被稱為迴圈連結串列的原因。
下面是一個實現迴圈單鏈表的程式。
示例
#include <iostream>
using namespace std;
struct Node {
int data;
struct Node *next;
};
struct Node* head = NULL;
void insert(int newdata) {
struct Node *newnode = (struct Node *)malloc(sizeof(struct Node));
struct Node *ptr = head;
newnode->data = newdata;
newnode->next = head;
if (head!= NULL) {
while (ptr->next != head)
ptr = ptr->next;
ptr->next = newnode;
} else
newnode->next = newnode;
head = newnode;
}
void display() {
struct Node* ptr;
ptr = head;
do {
cout<<ptr->data <<" ";
ptr = ptr->next;
} while(ptr != head);
}
int main() {
insert(3);
insert(1);
insert(7);
insert(2);
insert(9);
cout<<"The circular linked list is: ";
display();
return 0;
}輸出
The circular linked list is: 9 2 7 1 3
在上面的程式中,結構體`Node` 構成連結串列節點。它包含資料和指向下一個連結串列節點的指標。如下所示。
struct Node {
int data;
struct Node *next;
};函式`insert()`將資料插入到連結串列的開頭。它建立一個新的節點並將數字插入到新節點的資料欄位中。如果頭節點為NULL,則新節點指向自身;否則,迴圈連結串列中的最後一個節點指向新節點。然後頭節點指向連結串列的起始位置,即新節點。如下所示。
void insert(int newdata) {
struct Node *newnode = (struct Node *)malloc(sizeof(struct Node));
struct Node *ptr = head;
newnode->data = newdata;
newnode->next = head;
if (head!= NULL) {
while (ptr->next != head)
ptr = ptr->next;
ptr->next = newnode;
} else
newnode->next = newnode;
head = newnode;
}函式`display()`顯示整個連結串列。首先,`ptr`指向頭節點。然後它不斷向前移動到下一個節點,直到打印出所有節點的資料值。如下所示。
void display() {
struct Node* ptr;
ptr = head;
do {
cout<< ptr->data <<" ";
ptr = ptr->next;
} while(ptr != head);
}在`main()`函式中,首先透過呼叫`insert()`將各種值插入到迴圈連結串列中。然後顯示連結串列。如下所示。
int main() {
insert(3);
insert(1);
insert(7);
insert(2);
insert(9);
cout<<"The circular linked list is: ";
display();
return 0;
}
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP