存储结构
①顺序表的存储结构
#define MAXSIZE 100
typedef struct{
ElemType *elem; //存储空间的基地址
int length;
}SqList;
②单链表的存储结构
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
③顺序栈的存储结构
#define MAXSIZE 100
typedef struct{
SElemType *base;
SElemType *top;
int stacksize; //栈可用的最大容量
}SqStack;
④链栈的存储结构
#define MAXSIZE 100
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,*QueuePtr;
typedef struct{
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
}
⑦二叉树顺序存储结构
#define MAXSIZE 100
typedef TElemType SqBiTree[MAXSIZE]; //0号单元存储根节点
SqBiTree bt;
⑧二叉树链式存储结构
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
⑨图的邻接矩阵存储表示
#define MaxInt 32767 //代表∞
#define MVNum 100 //最大顶点数
typedef char VerTexType; //假设顶点的数据类型为字符型
typedef int ArcType; //假设边的权值类型为整型
typedef struct{
VerTexType vexs[MVNum]; //顶点表
ArcType arcs[MVNum][MVNum]; //邻接矩阵
int vexnum,arcnum; //当前顶点数和边数
}AMGraph;
⑩图的邻接表存储表示
#define MVNum 100
typedef struct ArcNode{
int adjvex; //该边所指顶点位置
struct ArcNode *nextarc; //指向下一条边的指针
OtherInfo info; //和边有关的信息
}ArcNode;
typedef struct VNode{
VerTexType data; //顶点表的数据
ArcNode *firstarc; //指向第一个依附于该顶点的边的指针
}VNode,AdjList [MVNum]; //全部表头结点为一个数组
typedef strutc{
AdjList vertices; //顶点表数组名字
int vexnum,arcnum; //图的当前顶点数和边数
}ALGraph;
标签:存储,struct,int,typedef,100,结构,黑皮,define
From: https://www.cnblogs.com/huininghou/p/17914359.html