數據結構

線性表

1. 順序存儲結構

define MAXSIZE 20
typedef int ElemType;
typedef struct
{
    ElemType data[MAXSIZE];
    int length;
}SqList

2. 鏈式存儲結構

單鏈表

typedef struct Node
{
    Elemtype data;
    struct Node *next;
}Node;
typedef struct Node *LinkList; //定義LinkList *類型

3. 棧

typedef int SElemType;
typedef struct
{
    SElemType data[MAXSIZE];
    int top;   // 棧頂指針,指向棧頂元素,空棧時爲-1
}SqStack;

棧的操作,出棧(pop)/入棧(push)
棧的應用:

  • 遞歸,斐波那契數
  • 四則運算表達式求值

4. 隊列

隊列的順序存儲結構

typedef struct
{
    QElemType data[MAXSIZE];
    int front;   // 頭指針指向隊列頭元素
    int rear;    // 尾指針,如果隊列不爲空,指向隊尾元素的下一個
}

當front等於rear時隊列爲空
隊列的鏈式存儲結構


typedef int QElemType;
typedef struct QNode    // 節點結構
{
    QElemType data;
    struct QNode *next;
}QNode,*QueuePtr;

typedef struct    // 隊列的鏈表結構
{
    QueuePtr front,rear;   // 隊頭、隊尾指針
}LinkQueue;

隊列的隊頭指針指向隊列的頭節點,隊尾指針指向終端節點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章