數據結構常用預定義總結
- 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;