資料結構學習 鏈式佇列的C語言實現

2021-10-18 14:54:16 字數 1113 閱讀 3730

佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(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...