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