佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。
佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為出隊。因為佇列只允許在一端插入,在另一端刪除,所以只有最早進入佇列的元素才能最先從佇列中刪除,故佇列又稱為先進先出(fifo—first in first out)線性表。
#include "stdio.h"
#include "stdlib.h"
#define max_size (20)
//定義乙個結點結構體
struct node;
//定義乙個佇列結構體
struct queue;
//建立乙個結點
struct node* creatnode(int data)
//建立乙個佇列
struct queue* creatqueue(void)
//入隊:鍊錶的尾插法
void push(struct queue* myqueue,int data)
//建立乙個新節點
struct node *newnode = creatnode(data);
if(myqueue->size == 0)
else
myqueue->size++;
}//出隊:從隊首出隊
void pop(struct queue* myqueue)
else
}//獲取隊首元素
int front(struct queue* myqueue)
return myqueue->head->data;
}//判定佇列是否為空
int empty(struct queue* myqueue)
return 1;
}int main()
while(empty(myqueue))printf("\n");
return 0;
}
by urien 2023年2月1日 12:09:38 資料結構學習筆記 佇列的鏈式儲存(C語言實現)
佇列是一種先進先出的線性表。是線性表就會有鏈式儲存,因為先進先出,鏈佇列就是在鏈尾進鏈頭出,這樣一來,定義鏈佇列時就需要定義兩個指標,分別指向佇列的隊頭 相當於頭指標 隊尾。如果隊頭等於隊尾,則該鏈隊列為空。實現 如下 include include typedef int lqeletype ty...
資料結構學習 鏈式棧的C語言實現
幾個概念 計算機中的儲存資料結構主要分為連續儲存結構和不連續儲存結構,其中連續儲存結構也稱為線性表,不連續儲存結構也稱為鏈式表。鏈式結構簡單的說就是不連續記憶體的陣列。棧作為一種資料結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料...
C語言實現資料結構 鏈式佇列
define elemtype int typedef struct queuenode qnode typedef struct linkqueue linkqueue void initqueue linkqueue q 因為是鍊錶所以不需要判斷隊滿 void enqueue linkqueue...