C++单链表实现程序
单链表是一种数据结构,它由使用自引用结构创建的节点组成。每个节点包含两个部分,即数据和指向下一个链表节点的引用。只需要指向第一个链表节点的引用即可访问整个链表。这被称为头节点。链表中的最后一个节点不指向任何节点,因此该部分存储NULL。
实现单链表的程序如下所示。
示例
#include <iostream> using namespace std; struct Node { int data; struct Node *next; }; struct Node* head = NULL; void insert(int new_data) { struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = head; head = new_node; } void display() { struct Node* ptr; ptr = head; while (ptr != NULL) { cout<< ptr->data <<" "; ptr = ptr->next; } } int main() { insert(3); insert(1); insert(7); insert(2); insert(9); cout<<"The linked list is: "; display(); return 0; }
输出
The linked list is: 9 2 7 1 3
在上面的程序中,结构体Node构成链表节点。它包含数据和指向下一个链表节点的指针。如下所示。
struct Node { int data; struct Node *next; };
函数insert()将数据插入到链表的开头。它创建一个new_node并将数字插入到new_node的数据字段中。然后new_node指向头节点。最后,头节点就是new_node,即链表从此开始。如下所示。
void insert(int new_data) { struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = head; head = new_node; }
函数display()显示整个链表。首先,ptr指向头节点。然后它不断地向前移动到下一个节点,直到打印所有节点的数据值。如下所示。
void display() { struct Node* ptr; ptr = head; while (ptr != NULL) { cout<< ptr->data <<" "; ptr = ptr->next; } }
在main()函数中,首先通过调用insert()将各种值插入到链表中。然后显示链表。如下所示。
int main() { insert(3); insert(1); insert(7); insert(2); insert(9); cout<<"The linked list is: "; display(); return 0; }
广告