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语言数据结构之链表的主要内容,如果未能解决你的问题,请参考以下文章

线性表之链表C语言

C语言数据结构之链表

C语言 严蔚敏数据结构 线性表之链表实现

第二节1:Java集合框架之链表及其实现

数据结构之链表

数据结构之链表