在数据结构中会看到:
typedef struct QNode
{
QElemType data; //数据域
struct QNode *next; //指针域
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
};
关键在于后面的那个部分如何理解
就是QNode,*QueuePtr这两个如何理解;
可以这样来理解
typedef struct QNode Qnode
typedef struct QNode *QueuePtr
同样通过这样一个例子可以这样来理解
typedef struct int ElemType
typedef struct int* ElemTypePtr
第一个是 定义新的整型变量 ElemType
第二个是 定义新的指向整型变量的指针 ElemTypePtr
可以简单理解为
ElemType = int
ElemTypePtr = int*
同理在上面的结构体中
可以理解为
typedef struct QNode QNode
typedef struct QNode* QueuePtr
于是
QNode 的对象都是结构体
QueuePtr 的对象都是结构体指针
使用起来会方便一些。
单链表存储结构
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
以上代码段可以分解为
typedef struct LNode LNode; //将结构体类型struct LNode重命名为LNode
typedef struct LNode *LinkList; //将struct LNode *重命名为LinkList
创建单链表
LinkList L; //等价于 struct LNode * L
可以理解为,通过typedef,将struct LNode *替换为LinkList,当我们在使用LinkList L定义变量时,实际上就是在使用 struct LNode * L定义变量。使得以后想定义指向struct LNode类型的指针变量时,不需要写struct LNode * ,只需要使用LinkList,减少了代码的书写。
提示:
当我们使用语句LinkList L创建单链表后,再调用InitList函数对单链表进行初始化为空表。
今天的文章有关结构体typedef struct Node{ }Node, *LinkedList;的解惑分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31303.html