关于链表初始化typedef struct LNode{}LNode,*linklist的理解

关于链表初始化typedef struct LNode{}LNode,*linklist的理解在严的数据结构(c语言版)中看到一段伪代码:typedefstructNode{ElemTypedata;//ElemType是本书约定的统一数据元素类型,简单理解成int吧structLNode*next;}LNode,*LinkList;typedef的用法不在此细说,可以简单理解为给数据类型取别名。对于这个代码,目的是定义线性表的单链表储存结构。结构体部分比较好理解,一个是数据元素data,一个是指向本结构体的结构体指针next。关键在于LNode与*L

关于链表初始化typedef

在严的数据结构(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 的对象都是结构体指针


  1. 该处严格遵守c语言的语法规则,必须是struct Node,但在C++中可以是Node。 ↩︎

今天的文章关于链表初始化typedef struct LNode{}LNode,*linklist的理解分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31417.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注