數據結構常用預定義總結

  • 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;