C语言数据结构之链表
Posted 文某9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言数据结构之链表相关的知识,希望对你有一定的参考价值。
链表的构成?
链表由节点构成,多个结点链起来,构成了链表。
那节点是什么?由什么构成?
节点就是空间,空间分两部分,一部分叫数据区域(存放数据),一部分叫指针区域(存放地址),所以节点由数据域和指针域构成。
节点如何链接起来?
例如有两个节点1,2,他们要链接起来,把节点1的指针域指向节点2的地址即可,简单来说,节点1指针区域存放的是节点2的地址,这样就可以说两个节点链接起来了。
跟数组比有何优势?
任何数据类型存在即合理,合适的地方用适合的数据类型。
链表在指定位置插入删除不需要移动元素,只需要修改指针,这一点优于数组。
c语言 节点结构体声明
首先明确,节点是由不同数据类型构成,所以用结构体(struct)来创建,接下来上代码
struct Ccc
int data;//数据域
struct Ccc *nextaddr;//指针域
;
链表创建
节点创建
struct Ccc node1=1,null;
struct Ccc node2=2,null;
struct Ccc node3=3,null;
struct Ccc node4=4,null;
struct Ccc node5=5,null;
节点连接构成链表
node1.nextaddr=&node2;
node2.nextaddr=&node3;
node3.nextaddr=&node4;
node4.nextaddr=&node5;
如何遍历链表?
使用循环体遍历链表
struct Ccc *wenmou9=&node1;//创建指针,且指向头节点
while(wenmou9!=null)//地址不为空,则进入循环体
printf("%d",wenmou9->data);//打印数据域的数据
wenmou9=wenmou9->nextaddr;//更新地址
以上是关于C语言数据结构之链表的主要内容,如果未能解决你的问题,请参考以下文章