在数据结构中,有一些常用的常量和类型需要用到,如下:
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
#define LIST_INIT_SIZE 100 // 线性表存储空间的初始分配量
#define LISTINCREMENT 10 // 线性表存储空间的分配增量
/*----------------线性表的结构体定义-----------------*/
typedef struct {
ElemType *Elem; // 存储空间基址
int length; // 当前长度
int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList;
/*---
/*----------------单链表的结构定义-------------------*/
typedef LNode{
ElemType data; // 数据域
struct LNode *next; // 指针域
}LNode, *LinkList;
/*---------------------------------------------------*/
/*-------------------栈的结构体定义---------------------*/
#define STACK_INIT_SIZE 100; // 存储空间初始分配量
#define STACKINCREMENT 10; // 存储空间分配增量
typedef struct {
SElemType *base; // 在栈构造之前和销毁之后,base的值为NULL;
SElemType *top; // 栈顶指针
int stacksize; // 当前已分配的存储空间,以元素为单位
}SqStack;
/*-----------------------------------------------------*/
#define QElemType char // 元素类型根据实际需要来定义
#define MAXSIZE 1000
typedef struct {
QElemType data[MAXSIZE];
int front;
int rear;
}SqQueue;
#define TElemType char
typedef struct BiTNode{ // 结点结构
TElemType data; // 结点数据
struct BiTNode *lchild, *rchild; // 左右 孩子指针
} BiTNode, *BiTree;