鱼C论坛

 找回密码
 立即注册
查看: 7561|回复: 5

[已解决]链表的第一个节点是从0开始还是1开始

[复制链接]
发表于 2018-9-4 11:30:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
struct list
{
        int num;
        struct list *next;
};
typedef struct list list_single;

int main()
{
        list_single *head;
        return 0;
}
///程序不完整  只做例子用
问题1:
比如 头结点---->节点1--->节点2---->节点3........---->节点n
链表的第一个节点是像数组0开始还是从1开始;

问题2:
在一般的应用中,头结点仅仅是作为一个头结点指针用(只给头节点的指针域赋值head->next=temp);
还是头结点就作为一个链表中有用的成员(给节点的数据域和指针域赋值head->next=temp,  head->num=0)
最佳答案
2018-9-4 11:50:56
1. 看个人喜好,对用户来说基本上是被封装成 0 开始的。至于程序内部要如何安排,就看程序员。链表的结构简单,没有特别要求。有些结构则会在内部安排第一个成员为 1,使得索引遍历更为方便程序员的维护。
2. 链表中的 head 就像是一个队列的领队。领队有没有用处?看情况 XD。你这个是头插法,所以它重要~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-4 11:36:43 | 显示全部楼层
本帖最后由 露转溪桥 于 2018-9-4 11:40 编辑

有头结点的链表,在链表的物理地址中,第一个节点就是头结点,但头结点的数据域不存任何内容,指针域存在一个指向第一个有效节点的地址 。
运算过程中的第一个节点比如数组0指的是第一个有效内容的节点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 11:50:56 | 显示全部楼层    本楼为最佳答案   
1. 看个人喜好,对用户来说基本上是被封装成 0 开始的。至于程序内部要如何安排,就看程序员。链表的结构简单,没有特别要求。有些结构则会在内部安排第一个成员为 1,使得索引遍历更为方便程序员的维护。
2. 链表中的 head 就像是一个队列的领队。领队有没有用处?看情况 XD。你这个是头插法,所以它重要~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 12:42:31 | 显示全部楼层
claws0n 发表于 2018-9-4 11:50
1. 看个人喜好,对用户来说基本上是被封装成 0 开始的。至于程序内部要如何安排,就看程序员。链表的结构简 ...

同意!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-4 14:57:56 | 显示全部楼层
claws0n 发表于 2018-9-4 11:50
1. 看个人喜好,对用户来说基本上是被封装成 0 开始的。至于程序内部要如何安排,就看程序员。链表的结构简 ...

那么在实际的工作中多数是使用仅仅将头指针作为一个指针(数据域不赋值)用。还是作为一个数据域赋值的节点。小甲鱼的视频里就是头指针数据域也赋值了的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 15:08:38 | 显示全部楼层
我是大甲鱼 发表于 2018-9-4 14:57
那么在实际的工作中多数是使用仅仅将头指针作为一个指针(数据域不赋值)用。还是作为一个数据域赋值的节 ...

看你喜欢,基本上不需要赋值,如果赋值的话,应该是计数器
     head
[count|      ]  ------>  [ e1 |   ]  ------>  [...]  ------>  [ NULL ]


老师是用 [head|    ],但是这个结构只有两个成员,data 和 next   [ data | next ]。只不过称这个结点为头结点而已。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表