维基百科对单链表的定义,很疑惑,麻烦进来看下

大河向东流阿 2010-09-07 08:01:16
/*線性表的單鏈表存儲结構*/
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;


为什么有两个LNode呢?c语言中定义struct不需要后面的LNode, *LinkList;吧?那这是什么意思呢?
还有就是结构体里可以直接引用本身吗?为什么会有这句:struct LNode *next;

我刚开始学数据结构,有点不懂,希望朋友们帮下忙~
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yutao_7871 2010-09-28
  • 打赏
  • 举报
回复
这是C++的定义方式,可以仔细学习一下关于typedef的语法,就很清晰了。
大河向东流阿 2010-09-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lzc52151 的回复:]

typedef struct node{
DataType data;
struct node *back;//表示后续结点,链表里每个结点都是node。这是指向下一个结点的指针。
} Node;//node是结构名,Node是把结构node重声明即用户自定义成Node类型。
[/Quote]
谢谢!
lzc52151 2010-09-08
  • 打赏
  • 举报
回复
typedef struct node{
DataType data;
struct node *back;//表示后续结点,链表里每个结点都是node。这是指向下一个结点的指针。
} Node;//node是结构名,Node是把结构node重声明即用户自定义成Node类型。
大河向东流阿 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lzc52151 的回复:]

LZ的写法应该编译不过。这样写试试:
typedef struct node{
DataType data;
struct node *back;//表示后续结点 //这个不是指向他自己的地址吗?
} Node;//结构名字叫node,那Node是什么呢?

typedef struct{
Node *front;
int size;
} LList;//定义头结构

[/Quote]
谢谢楼上!
lzc52151 2010-09-07
  • 打赏
  • 举报
回复
LZ的写法应该编译不过。这样写试试:
typedef struct node{
DataType data;
struct node *back;//表示后续结点
} Node;
typedef struct{
Node *front;
int size;
} LList;//定义头结构

33,008

社区成员

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

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