此篇我根据课本总结这几类线性表的存储结构
顺序表
#define MAXSIZE 100
typedef struct {
ElemType *Elem;//定义存储空间的基地址
int length;//定义当前长度
}SqList; //顺序表的结构类型为SqList
单链表
typedef struct LNode
{
ElemType data;//节点的数据域
struct LNode *next;//节点的指针域
}LNode,*LinkList;// LinkList为指向结构体LNode的指针类型
双向链表
typedef struct DuLNode{
Elemtype data;//数据域
struct DuLNode *prior;//指向直接前驱
struct DuLNode *next;//指向直接后继
}DuLNode,*DuLinkList;
顺序栈
#define MAXSIZE 100;
typedef struct{
SElemType *base;//栈底指针
SElemType *Top;//栈顶指针
int stackSize;//栈可用的最大容量
}Sqlstack;
链栈
typedef struct StackNode{
ElemType data;
struct StackNode *next;
}StackNode,*LinkStack;
队列
//队列的顺序存储结构
#define MAXSIZE 100 //队列可能达到的最大长度
typedef struct{
QElemType *base;//储存空间的基地址
int front;//头指针
int rear;//尾指针
}SqQueue;
链队列
//队列的链式存储结构
typedef struct QNode {
QElemType data;
struct QNode *next;
}QNode,*QueuePer;
typedef struct
{
Queueptr front ;//队头指针
Queueptr rear ;//队尾指针
}LinkQueue;