关于一个复杂的结构体!!!!!

zhaohaoyuan 2006-08-16 10:39:27
各位朋友,小弟最近在看数据结构时,遇到了一个结构体,死活搞不懂,想请教大家帮忙给小弟我指点一二,万分感谢。

typedef struct node
{ datatype data;
struct node *next;
}LNode,*LinkList;

第一行的node又是什么意思?
struct node *next;这一句是嵌套吗??怎么理解??
在这里的LNode和*LinkList是什么意思呀??
是不是定义的结构体的类型名称??

请各位高手能详细的给小兄弟我解释一下这个结构体!!谢谢!!!
...全文
231 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaohaoyuan 2006-08-21
  • 打赏
  • 举报
回复
小弟谢谢wanmoxiaosheng() ,fd7893(看着办吧),learnlife(猫钥匙) ,kingkiosk() !感谢大家解决了一直困扰我很长时间的问题!谢谢!!!
kingkiosk 2006-08-19
  • 打赏
  • 举报
回复
datatype指的是任意一种结构类型,如int,char,doubel等
node是你自己开头定义的结构体名,也就是该指针指的是和结构体本身一样的结构体
把它当做链表的时候你就可以看到
datatype data 是数据域
struct node *next 是指针域
learnlife 2006-08-17
  • 打赏
  • 举报
回复
一、理解下面的东西
struct node
{
datatype data;
struct node *next;
};
这我想你应该熟悉,是结构体定义,只是在结构体内部有一个struct node *,你可能
有些迷惑不解,这是一个指针,那这个指针是指向什么类型呢?这个指针指向的类型就
是这个结构体(注:不用担心造成循环定义,指针长度是固定的)

二、理解typedef
typedef用来做什么?用来进行新类型定义,那么这里定义了几个新类型呢?
typedef struct node
{
datatype data;
struct node *next;
}LNode,*LinkList;
答案是2个,一个是LNode类型,一个是LinkList类型

三、你是怎么理解LNode类型和LinkList类型的?
LNode类型就是指上文一所指的结构体;而LinkList类型其实就是指向这种
结构体的指针

四、最后,这是一个最普通的单链表结构定义
fd7893 2006-08-17
  • 打赏
  • 举报
回复
这是个非常典型的单链表定义。
struct node
{...}
用来定义一个称为node的结构
typedef ... LNode,*LinkList
LNode是为了使用方便而为 node结构的重命名,同理 LinkList是 node结构类型的指针

以后在程序中这样使用

LNode data; /*声明一个node变量*/
LinkList link; /*声明一个node类型指针*/

希望说明白了
wanmoxiaosheng 2006-08-16
  • 打赏
  • 举报
回复
这是个常用的链表节点结构体定义,该节点保留有数据取值和下一节点指针(struct node类型)。
struct node *next;表示next是个指向结构体类型struct node的指针;
LNode,*LinkList是struct node型的变量和指针变量。

这是我的理解,不当之处请高手多指正。

33,026

社区成员

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

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