数据结构常用预定义总结

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