单链表的小问题

wyongliang 2009-07-28 06:52:07
在严蔚敏 数据结构上

//---------线性表的单链表存储结构---------
typedef struct LNode{
ElemType data;
struct Lnode *next;
}LNode, *Linklist;


这个C语言描述中
问题
1,下面的LNode, 和 Linklist是不是一种结构体LNode?
2,如果是表示的一种结构体 为什么还要写一个LNode?
3,在结构体中 struct Lnode 中的Lnode 与LNode 相同?属于印刷错误?

4,书上定义说 :头指针指示链表中第一个节点的存储位置,
头结点的指针域存储指向第一个结点的指针(即第一个元素结点的存储位置)
那么头结点的指针域是不是头指针?
...全文
102 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcdef0966 2009-07-29
  • 打赏
  • 举报
回复
第三个问题:
typedef struct LNode{
ElemType data;
struct Lnode *next;
}LNode, *Linklist;

写成这样是没错的,当然你也可以写成
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}LNode, *Linklist;

第四个问题:
如果没有设头结点的话,头指针是指向单链表第一个结点的指针,
为方便使用,通常在第一个结点之前加一个结点,即投结点;这时候,头指针就是指向头结点了,头结点的指针域再指向第一个结点。
好好看看书上的两个图就行了

wyongliang 2009-07-28
  • 打赏
  • 举报
回复
要是能编出来 估计我已经很理解了
各位大侠再指点一下啊 一人一句 也许我就理解了
abcdef0966 2009-07-28
  • 打赏
  • 举报
回复
你编个创建链表的程序,然后打印出地址和指针值,看下,就很清楚了
wyongliang 2009-07-28
  • 打赏
  • 举报
回复
看了楼上两位回答,我的理解是:
对于第一个和第二个问题
LNode 和Linklist 就是结构体struct LNode
而下面又写一个LNode 是为了以后使用的方便 不用每次都用struct LNode去声明变量!
对于第三第四个问题还不是很明白 希望能直接照我问题的格式回答
谢谢大家
abcdef0966 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 wyongliang 的帖子:]
在严蔚敏 数据结构上

//---------线性表的单链表存储结构---------
typedef struct LNode{
ElemType data;
struct Lnode *next;
}LNode, *Linklist;


这个C语言描述中
问题
1,下面的LNode, 和 Linklist是不是一种结构体LNode?
2,如果是表示的一种结构体 为什么还要写一个LNode?
3,在结构体中 struct Lnode 中的Lnode 与LNode 相同?属于印刷错误?

4,书上定义说 :头指针指示链表中…
[/Quote]

LNode 等价于struct LNode
即你可以定义LNode node;也可以定义struct LNode node;
LinkList等价于struct LNode*,是指向节点的指针类型
建议你找c语言书籍中关于typedef和struct的章节看下


头指针指示链表中第一个节点的存储位置,
头结点的指针域存储指向第一个结点的指针(即第一个元素结点的存储位置)

这里头结点是为了方便操作,在链表前加的一个结点,不包含真正需要的链表元素
头指针指示的就是这个头结点

当然也可以定义不带头结点的链表,这样,链表的头指针就指向第一个元素结点的位置了
sbje36 2009-07-28
  • 打赏
  • 举报
回复
我只能这样简单的告诉你,你可以将LNode看成链表中一个节点,Linklist这个指针可以根据你的需要动态的指向任何一个节点,并不一定是头结点
wyongliang 2009-07-28
  • 打赏
  • 举报
回复
希望大侠回答下小弟问题
入门迷茫中 希望把这些问题搞清楚 有个好的开始

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧