header.h
// 顺序表的结构定义
#define Maxsize 100
//const int Maxsize = 100; // 预先定义一个足够大的常数
typedef struct
{
int data[Maxsize]; // 存放数组的数组
int length; // 顺序表的实际长度
}SeqList; // 顺序表类型名为SeqList
// SeqList L 定义L为一个顺序表
Linear.h
// 单链表的类型定义
typedef struct node
{
int data; // 数据域
struct node *next; // 指针域
}Node, *LinkList;
// 双向循环链表的类型定义
struct dbnode
{
int data;
struct dbnode *prior, *next;
}
typedef struct dbnode *dbpointer;
typedef dbpointer DLinkList;
Seqstack.h
#define maxsize 6
//const int maxsize = 6;
// 顺序栈
typedef struct seqstack
{
int data[maxsize];
int top; // 标志栈顶位置的变量
}SeqStk;
Lkstack.h
// 链栈的定义
typedef struct node
{
int data;
struct node *next;
}LkStk;
SeqQue.h
// 顺序队列类型(普通队列和循环队列类型定义都一样,都如下:)
#define maxsize 20
//const int maxsize = 20;
typedef struct seqque
{
int data[maxsize];
int front, rear;
}SeqQue;
typedef struct cycque
{
int data[maxsize];
int front, rear;
}CycQue;
LkQueue.h
// 链队列类型定义
typedef struct LinkQueueNode
{
int data;
struct LinkQueueNode *next;
}LkQueNode
typedef struct LkQueue
{
LkQueNode *front, *rear;
}LkQue;
BinTree.h
// 二叉链表的类型定义
typedef struct btnode
{
int data;
struct btnode *lchild, *rchild; // 指向左右孩子的指针
}*BinTree;
// 三叉链表的类型定义
typedef struct ttnode
{
int data;
struct ttnode *lchild, *parent, *rchild;
}*TBinTree;
Graph.h
#define vnum 20
// 邻接矩阵
typedef struct gp
{
int vexs[vnum]; // 顶点信息
int arcs[vnum][vnum]; // 邻接矩阵
int vexnum, arcnum; // 顶点数,边数
}Graph;
Graphlk.h
#define vnum 20
// 邻接表的类型定义
// 表结点
typedef struct arcnode
{
int adjvex; // 下一条边的顶点编号
int weight; // 权值
struct arcnode *nextarc;
}ArcNode;
// 表头结点
typedef struct vexnode
{
int vextex; // 顶点编号
ArcNode *firstarc; // 指向第一条边的指针
}AdjList[vnum];
typedef struct gp
{
AdjList adjlist;
int vexnum, arcnum; // 顶点和边数
}Graph;
