链表队列入门介绍
1,快速開始:
隊列是一種和棧相反的,遵循先進先出原則的線性表。此文章使用鏈表來實現隊列。
如上圖所示,就像一個自來水管,先進入水管的水先從水龍頭出來,即Front位置的元素最先出隊列,因為它們是最先入隊列的。
2、實現隊列
本代碼是嚴蔚敏教授的數據結構書上面的偽代碼的C語言實現代碼。
一定要多思考,多問為什么!
首先我們定義了一些常量:
#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0typedef 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;總結
- 上一篇: es java api 创建索引结构_e
- 下一篇: php 保护变量,保护PHP中的“包含污