数据结构链式表基本操作代码

数据结构链式表基本操作代码


2024年4月30日发(作者:)

数据结构链式表基本操作代码

链式表是一种常用的数据结构,它可以用来存储和操作大量数据

元素。在这篇文章中,我们将介绍链式表的基本操作,并给出相应的

代码实现。

1. 链式表的定义

链式表是由若干个节点构成的数据结构,每个节点包含两部分数

据:一个是存储实际数据的数据域,另一个是指向下一个节点的指针。

链式表的头节点是一个特殊的节点,它不存储实际数据,只有指向下

一个节点的指针。

2. 链式表的基本操作

2.1 链式表的创建

链式表的创建需要先创建头节点,然后逐个创建节点并将它们插

入链表中。创建节点时需要为节点分配内存空间,并将节点的数据域

和指针域初始化。

//定义链式表节点类型

typedef struct node {

int data; //数据域

struct node *next; //指针域

} Node;

//创建链式表

Node *createList() {

Node *head = (Node *)malloc(sizeof(Node)); //创建头节点

- 1 -

head->next = NULL; //将头节点的指针域初始化

Node *p = head; //p指向头节点

int x;

while (1) {

scanf('%d', &x); //输入新节点的数据

if (x == -1) break; //输入-1表示输入结束

Node *newNode = (Node *)malloc(sizeof(Node)); //创建新

节点

newNode->data = x; //初始化新节点的数据域

newNode->next = NULL; //将新节点的指针域初始化

p->next = newNode; //将新节点插入链表尾部

p = newNode; //p指向新节点

}

return head; //返回头节点

}

2.2 链式表的遍历

链式表的遍历是指依次访问链表中的每个节点,并对每个节点进

行相应的操作。遍历链表时需要从头节点开始,依次访问每个节点的

数据域,并将指针移动到下一个节点。

//遍历链式表

void traverseList(Node *head) {

Node *p = head->next; //p指向第一个实际节点

- 2 -

while (p) { //p不为NULL时循环

printf('%d ', p->data); //输出节点数据

p = p->next; //p指向下一个节点

}

printf('

'); //输出换行符

}

2.3 链式表的插入

链式表的插入是指在链表中插入一个新节点,并将它插入到指定

的位置。插入新节点时需要先找到插入位置的前一个节点,然后通过

修改指针将新节点插入到链表中。

//在链式表的第i个位置插入新节点

void insertList(Node *head, int i, int x) {

Node *p = head; //p指向头节点

for (int j = 1; j < i; j++) { //找到第i-1个节点

if (p == NULL) {

printf('Error: The position is out of range!

');

return;

}

p = p->next;

}

- 3 -

Node *newNode = (Node *)malloc(sizeof(Node)); //创建新

节点

newNode->data = x; //初始化新节点的数据域

newNode->next = p->next; //将新节点的指针域指向第i个节

p->next = newNode; //将第i-1个节点的指针域指向新节点

}

2.4 链式表的删除

链式表的删除是指在链表中删除一个节点,并将它从链表中移除。

删除节点时需要先找到要删除的节点,然后通过修改指针将该节点从

链表中移除。

//删除链式表的第i个节点

void deleteList(Node *head, int i) {

Node *p = head; //p指向头节点

for (int j = 1; j < i; j++) { //找到第i-1个节点

if (p == NULL) {

printf('Error: The position is out of range!

');

return;

}

p = p->next;

}

- 4 -

Node *q = p->next; //q指向第i个节点

p->next = q->next; //将第i-1个节点的指针域指向第i+1个

节点

free(q); //释放第i个节点的空间

}

3. 总结

本文介绍了链式表的基本操作,包括创建链表、遍历链表、插入

节点和删除节点。通过代码实现,读者可以更加深入地理解链式表的

特点和操作方式。在实际开发中,链式表常常用来实现各种数据结构

和算法,是一种非常重要的数据结构。

- 5 -


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714448053a2448400.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信