c语言实现链表链表!

本文实例讲述了c语言实现链表实現的双链表功能分享给大家供大家参考,具体如下:


  

  
 printf("要查找的数据在单链表中不存在!\n");

希望本文所述对大家c语言实现链表程序设计有所幫助

    掌握结构体指针后,链表作为兩种形式的集合将c语言实现链表的作用发挥到巨大。

链表是线性表包括两个部分:数据域&指针域

数据域:存储需要保存的数据

指针域:各个节点之间的连接

连续性:链表在逻辑上是连续的,但物理上未必连续

链表主要有单向链表双向链表,循环链表


链表操作:对于链表的操作一般包括增加删除,修改查找

下面对单向链表进行举例操作:

操作环境:keil v4,串口软件有硬件支持

//定义全局变量,实现每个え素的id不同

*功能:删除指定id位置的元素

*功能:修改指定id位置的元素

*功能:寻找指定id位置的元素

//执行一:循环加入10个链表元素

执行每一步功能操作可单独处理







?学习链表之前先来看几个术語:
??首节点:存放第一个有效数据的节点;
??尾节点:存放最后一个有效数据的节点;
??头节点:头节点的数据类型与首节点的數据类型相同,并且头节点是首节点前面的那个节点并不存放有效数据;头节点的存在只是为了方便链表的操作。
??头指针:指向头節点的指针;
??尾指针:指向尾节点的指针


//声明头指针,p1和p2两个指针 p1 = head; //把头指针的指向赋给指针p1,即p1指向头结点 printf("输入节点信息:学号、姓洺和成绩\n"); //学号为字符串'0'作为结束输入的条件 2)第一个节点的next域指向第二个节点的数据域 3)p1指针指向第二个节点的数据域 //重新分配第三个节点並让p2指向他 printf("输入节点信息:学号、姓名和成绩\n"); //执行结束后释放p2指针,并返回头指针 //依次输出各个节点直到最后一个节点 //声明两个结构体类型的指针p1和p2 //查找要删除的节点的位置 //要删除的节点不存在 //执行删除操作,并释放p1指针 //测试插入节点的操作 printf("输入待插入的节点信息:学号、姓名和成绩\n"); //测试删除节点的操作

?1. 创建节点:头节点的指针域初始为空将新创立的节点依次挂到上面。p1始终指向最后一个节点p2始终為新建立的节点。
?2. 插入节点:先查找该节点要插入的位置在插入节点。插入的语句为:

?3. 删除节点:查找要删除的节点的位置执行插入操作,语句:

?4. 输出链表:知道头指针就能知道整个链表

我要回帖

更多关于 c语言链表 的文章

 

随机推荐