佇列 鏈式儲存佇列的定義以及基本操作 超詳細!

2021-10-08 12:41:27 字數 1212 閱讀 5293

#include

#include

//帶頭結點的鏈隊

//結點的結構體定義

typedef

struct linknode

linknode;

//鏈隊的結構體定義

typedef

struct

linkqueue;

//初始化(創)

void

initialize_queue

(linkqueue* q)

//判空

void

empty_queue

(linkqueue q)

else

}//不存在判滿操作!

//入隊(增)

void

en_queue

(linkqueue* q,

int x)

//出隊(刪)

void

de_queue

(linkqueue* q)

linknode* p;

p = q->front->next;

//p指標指向被刪除的點(隊頭)

printf

("the element deleted is:%d\n"

, p->data)

; q->front->next = p->next;

//頭結點後乙個結點為第二個結點(孤立第乙個結點)

if(q->rear == p)

//重要!!若原隊只剩乙個結點,刪除後變空

q->rear = q->front;

free

(p);

//釋放原隊頭的結點

return;}

//獲取隊頭元素(查)

void

top_queue

(linkqueue q)

linknode* p = q.front->next;

int x = p->data;

printf

("the top_queue is:%d\n"

, x)

;return;}

//列印隊

void

print_queue

(linkqueue q)

printf

("\n");

return;}

intmain()

佇列鏈式儲存

ifndef status h define status h define false 1 define true 1 define ok 1 define error 0 typedef int elemtype typedef int status endif ifndef stack h d...

佇列的鏈式儲存結構以及實現

佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,通常簡稱為鏈佇列。為了操作上的方便,將隊頭指標指向鏈佇列的頭結點,隊尾指標指向終端結點。當隊列為空時,front和rear都指向頭結點。鏈佇列的結構定義如下所示 typedef int qelemtype qnode代表佇列中元素...

佇列的鏈式儲存

include include include typedef int elemtype typedef struct qnodequeuenode,queuenodeptr typedef struct qlistlistqueue,listqueueptr listqueueptr initqu...