一.顺序表结构体定义:
typedef struct
{
int data[maxsize];
int length;
}Sqlist;
二.单链表结构体定义:
typedef struct LNode
{
int data;
struct LNode *next;
}LNode;
三.双链表结构体定义:
typedef struct DLNode
{
int data;
struct DLNode *prior;
struct DLNode *next;
}DLNode;
四.顺序栈结构体定义:
typedef struct
{
int data[maxsize];
int top;
}SqStack;
五.链栈结构体定义:
typedef struct LNode
{
int data;
struct LNode *next;
} LNode;
六.顺序队结构体定义:
typedef struct
{
int data[maxsize];
int front;
int rear;
} SqQueue;
七. 链队结构体定义:
1)队结点类型定义
typedef struct QNode
{
int data;
struct QNode *next;
} QNode;
2)链队类型定义
typedef struct
{
QNode *front;
QNode *rear;
} LianQueue;
八.二叉树结点类型的定义
typedef struct BTNode
{
char data;
struct BTNode *lchild;
struct BTNode *rchild;
} BTNode;
九.树的存储结构
1》双亲表示法
typedef struct
{
int data;
int parent;
}PTNode;
typedef struct
{
PTNode p[maxsize];
int n;
}PTree;
2》孩子表示法
typedef struct ArcNode
{
int child;
struct ArcNode *next;
} ArcNode;
typedef struct
{
int data;
ArcNode *firstchild;
}VNode;
typedef struct
{
VNode v[maxsize];
int n;
}CTree;
3》mhdfn表示法
typedef struct CBNode
{
int data;
struct CBNode *firstchild;
struct CBNode *nextbrother;
} CBNode;
十.邻接矩阵的结构体类型定义
typedef struct
{
int no;//顶点编号
char info;//顶点其他信息
} VertexType;
typedef struct
{
int edge[maxsize][maxsize];//边的权值
int n;//顶点个数
int e;//边数
VextexType vex[maxsize];
}MGraph;
十一.邻接表的结构体定义
typedef struct ArcNode
{//边、弧
int adjvex;//该边所指向的结点的编号
struct ArcNode *next;//下一条边的指针
int info;//边的信息
} ArcNode;
typedef struct
{//顶点
char data;//顶点信息
ArcNode *first;//指向第一条边的指针
} VNode;
typedef struct
{//用邻接表存储的图
VNode adjlist[maxsize];//邻接表
int n;//顶点数
int e;//边数
} AGraph;