C语言里的链表
发布网友
发布时间:2022-04-28 14:05
我来回答
共2个回答
热心网友
时间:2022-06-18 22:33
首先你要明白链表是什么,链表中有1个数据区域和1个指针区域,指针区域存放的是下一个节点的地址(如果有下个节点的话),这是单链表,如果是双链表的话,那么有2个指针区域,1个指向前1个节点的地址,1个指向后1个节点的地址,如果对链表不是很熟悉,得先去看看数据结构,链表并不是数据结构里面的东西。
接下来我们看看在C语言中如何表示链表。
typedef struct Linklist
{
int data;
struct Linklist * next;
}Linklist;
定义一个结构体来表示链表,int data 代表数据,根据实际情况自己修改,struct Linklist * next 代表指针,指向下1个节点的,比如现在有3个节点A B C ,如果他们的next为NULL ,这3个节点就是毫无关系的,分散的,如果定义A->next =&B B->next=&C 那么他们就变成链表了,即A->B->C
如果是双链表,那么在结构体中定义的时候加上struct Linklist * prev 这个指针指向前1个节点的地址,比如A->next=&B B->prev=&A 那么现在双链表就为A B相互指向,这里不好画出来就没画了。
至于链表的添加,删除之类的可以再看看C语言里面的,如果还不会在来问我吧~追问那个不给力是选错了
上面的东西 我明白 struct Linklist * prev 这个是指向结构体 Linklist的指针
只是 有没有实例 网上的实例我看的有些糊涂 如下
struct Node * create_list ( );
这个是函数还是什么 如果是指向函数的指针 貌似不这么写 况且前面还有struct这个关键字
是说民是结构体
所以 不太理解
追答struct Node * create_list ( ); 这个是函数, 返回的是1个节点而已
热心网友
时间:2022-06-18 22:33
所谓链表 就是一个链 有很多个相同的单元按一定顺序组成
比如 某个单元是这样的
struct point {
int date;
struct point * next;
struct point * left;
}point
每个point里有这指向上一个和下一个point 的变量
这样就是双向连表了追问其实 我需要的是 一个实际的做好标注例子
基本概念我是知道的
比如 结构体 指向结构体的指针
指针函数 函数指针等
链表 我大概也知道怎么实现
包含一个数据域和指针域(用于指向另一个相同结构结构体),如果是含有两个指针指向上个和下个域
那就是双向链表
这些 我多知道
只是 需要一个例子 以方便我自己分析代码 加深映像和应用