C语言遍历单链表、插入、删除……完整实现代码
1。遍历单链表(打印、修改)
实用的概念大家一定很熟悉,就是从链表的顶部开始,一步一步向后访问每个元素,这叫遍历。对于遍历操作,我们可以衍生出很多常见的数据操作,比如查询元素、修改元素、检索元素个数、打印整个链表数据等。
遍历的思想极其简单。只需要建立一个指向链表L的节点,然后沿着链表L一一向后查找即可。 节点 *p=L-> 下一个; int i=0; ♝♝ printf(" % d个元素的值为:%d\n",++i,p->data); p=p->下一个;
对于元素修改操作,如下代码实现为:
//改变链表内容,然后将链表中修改值为x的元素改为k。 ? { 节点 *p=L->下一个; int while(p){ 如果 (p- >data==x){ p->data=k; ❀❀ p->下一个; } return L;❀只有函数需要简单的函数oid,没有参数。当我们需要进行元素修改等元素操作时,我们可以设计一个LinkedList类型的函数来返回一个新的修改后的链表。//复用顶部节点空间 L->next = NULL; //初始化一个空链表intx; 同时(scanf(" %d",&x) !=de p; p = (节点 *) loc (sizeof(Node)); //申请新节点 p->data = x; //节点数据字段赋值 p->下一个 = L-> 下一个; | LinkedList LinkedListCreatT() { 节点 *L; L = (节点 *)马尔 sizeof(节点)) ; //申请头节点空间 L->next = NULL; //初始化一个空链表 Node *r; r = L; //r始终指向 终端节点指向开头的头节点 int x; 同时( Scanf (%") 节点*p; p = (节点*)malloc(sizeof(节点)); //申请新节点 p->data = x; //节点数据字段赋值 r->next = p;头 L-->|1|-->|2| -->NULL r = p; } r->下一个ur; n L;}//插入单链表,插入元素int x) { 前; pre = L; int tempi = 0;❀ for |
printList(list) ) ); scanf ("%d",&i) "请输入更改后的值: " ); scanf ( "%d",&x); ♼替换,i; 打印列表(列表); //删除 printf ( ); scanf( "%d",&x); LinkedListDelete(list,x); 打印 返回 0; }
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网