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;