鏈表隊列入門介紹

1,快速開始:

隊列是一種和棧相反的,遵循先進先出原則的線性表。此文章使用鏈表來實現隊列。

如上圖所示,就像一個自來水管,先進入水管的水先從水龍頭出來,即Front位置的元素最先出隊列,因爲它們是最先入隊列的。

2、實現隊列

  本代碼是嚴蔚敏教授的數據結構書上面的僞代碼的C語言實現代碼。

  一定要多思考,多問爲什麼!

  首先我們定義了一些常量:

#include <stdio.h>
#include <stdlib.h> 
#define OK 1
#define ERROR 0
 
typedef int QElemtype;
typedef int status;

2.1、對隊列和節點的結構定義

  既然底層是鏈表,那麼每個節點不僅要保存當前值,還要指向下一個節點的地址。

  對於隊列來說,每次插入值都是在隊尾(rear),每次取出值都是在隊首(head),所以,我們一定是有兩個變量來指向隊頭與隊尾的。

綜上所述,我們結構定義代碼如下:

typedef struct QNode { //對節點的結構定義
    QElemtype data;
    struct QNode *next;
}QNode,*QueuePtr;
 
typedef struct{     //對隊列的結構定義
    QueuePtr head;
    QueuePtr rear;
}LinkQueue; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章