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;
来源: http://www.bubuko.com/infodetail-3460724.html