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,去访问里面的信息
};
数据结构(十)线性表的结构体定义归纳总结
最新推荐文章于 2023-06-12 20:31:59 发布