数据结构(十)线性表的结构体定义归纳总结

1.顺序表
在这里插入图片描述
struct SequenceList
{
int *data; //定义一个指针,指向数据。
int length;
};
除了查找元素,位置,查看长度。其他初始化,插入,删除,清空,销毁都要取地址(修改实参的值)
在main主函数里,定义的是一个变量 seq list;
2.链表(单链表)
在这里插入图片描述
Struct Node
{
ElemType data; (typedef int ElemType) //定义数据域
struct Node *next; //定义一个指针next指向struct Node 的指针域
};
typedef struct Node node;
tupedef struct Node * pNode;
除了初始化,销毁要取地址,其他不用(只要给头结点,就能找到下一个节点)
在main主函数里,定义的是一个指针的指针 pNode head ; 定义一个指针头结点指向结构体
3.双向链表
在这里插入图片描述
struct Node
{
ElemType data; //定义数据域
struct Node *next;// 定义一个指针指向struct Node 的后指针域
struct Node *prior;// 定义一个指针指向struct Node 的前指针域
};
4.双向循环链表
在这里插入图片描述
struct Node
{
ElemType data;
struct Node *next;
struct Node *prior;
};
5.栈(顺序栈)
在这里插入图片描述
在这里插入图片描述
struct SequenceStack
{
int *data; //定义一个指针,指向存放数据的空间
int top; //定义栈顶 (相当于定义栈的长度)
};
涉及到栈的变化,都要取地址。
在主函数里,定义的是一个结构体变量。
6.链式栈
在这里插入图片描述
struct Node //表示一个结点的信息
{
int data; //定义数据
struct Node *next; //定义一个指针next指向结构体Node ,进而可以去访问里面的数据
};
typedef struct Node node;
struct StackInfo //表示栈的信息
{
int length; //栈的长度
node *top; //定义栈顶指针top指向结构体node
};
7.顺序队列
在这里插入图片描述
在这里插入图片描述
struct SequenceQueue
{
int *data; //定义一个指针,指向数据域。
int front; //定义队头
int rear; //定义队尾
};
涉及到队列的改变,都需要取地址。
在main主函数里,定义的是一个结构体变量。
8.链式队列
struct QueueNode //表示队列结点的信息
{
int data; //定义数据
struct QueueNode *next; //定义一个指针next指向结构体QueueNode,进而可以去访问里面的数据。
};
struct QueueInfo //表示队列的信息
{
node *front; //定义一个队头指针,指向结构体node
node *rear; //定义一个队尾指针,指向结构体node,去访问里面的信息
};

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值