在严的数据结构(c语言版) 中看到一段伪代码:
typedef struct Node{
ElemType data;//ElemType是本书约定的统一数据元素类型,简单理解成int吧
struct LNode * next;
}LNode,*LinkList;
typedef的用法不在此细说,可以简单理解为给数据类型取别名。
对于这个代码,目的是定义线性表的单链表储存结构。
结构体部分比较好理解,一个是数据元素data,一个是指向本结构体的结构体指针next。
关键在于LNode与*LinkList——
抽象出两个句子:
typedef struct Node LNode;
typedef struct Node* LinkList;
1、先说LNode,参照typede的用法,可以得知LNode就是struct Node1的别名,即LNode==struct Node;
2、再说LinkList,是一个指向该结构体的的指针的别名。其实这个*应该不是跟着LinkList,而是跟在Node后面的。
可以通过这样一个例子可以这样来理解
typedef struct int ElemType
typedef struct int* ElemTypePtr
第一个是 定义整型变量的别名 ElemType
第二个是 定义指向整型变量的指针的别名 ElemTypePtr
用起来的话就如下:
LNode A;//定义结构体变量A;
LinkList B;//定义指向结构体的指针变量B;
LNode 的对象都是结构体
LinkList 的对象都是结构体指针
-
该处严格遵守c语言的语法规则,必须是struct Node,但在C++中可以是Node。 ↩︎
今天的文章关于链表初始化typedef struct LNode{}LNode,*linklist的理解分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31417.html