C語言 鍊錶佇列空間

2021-10-22 12:21:25 字數 1663 閱讀 5000

佇列的入隊,出隊,判空,展示,清空等操作

相關的解釋都在**注釋中

#include

#include

#include

#include

/*佇列: 頭向尾移動減少資料,尾移動增加資料*/

typedef

int type;

//自定義型別

typedef

struct _que//佇列空間

que,

*queptr;

/*que是乙個佇列空間,queptr是指向乙個佇列空間的指標*/

typedef

struct _point//包

point,

*pointptr;

/*point包含乙個含乙個指向佇列頭(queptr s->top)和佇列尾的指標(queptr s->tail)*/

pointptr point_creat()

//建立乙個指向point的指標s和乙個佇列,s->top和s->tail初始時規定指向乙個que空間作為空佇列

/*s->top始終指向乙個空的頭節點,s->tail在非空下始終指向乙個佇列空間*/

intque_add

(pointptr s,type data)

/*增加乙個佇列空間*/

p->data = data;

p->next =

null

; s->tail->next = p;

//移動尾部

s->tail = p;

(s->cnt)++;

return1;

}int

que_empty

(pointptr s)

//佇列判空

else

}int

que_pop

(pointptr s)

//彈出乙個佇列空間

else

return1;

}}intque_print

(pointptr s)

//展示佇列

else

putchar

('\n');

return1;

}}intque_count

(pointptr s)

//返回已經有多少個佇列空間

void

que_clear

(pointptr s)

//清空佇列,實際上是que_pop的多次運用 }}

void

que_free

(pointptr s)

//清空所有佇列資訊

intmain()

if(num ==1)

}if(flag)

getch()

;}else

if(num ==2)

else

getch()

;}else

if(num ==3)

else

getch()

;}else

if(num ==4)

else

if(num ==5)

getch()

;}else

if(num ==6)

}}}

自己研究的,如果有更好的請指出,我一定洗耳恭聽

C語言鍊錶實現佇列

課本上只給了佇列的陣列實現,關於鍊錶實現的留做了作業,現實現如下 queueli.h typedef int elementtype start fig3 57.txt ifndef queueli h define queueli h struct node struct qnode typede...

C語言基於鍊錶的佇列

寫了乙個基於鍊錶的佇列,非常簡單,只提供了初始化,判斷是否為空,銷毀,入隊和出隊操作,可以很容易的嵌入到工程中去。只提供了很少的注釋,好的 是可以自注釋的,另外如果對於c語言和佇列這個資料結構較熟悉的話,看懂我的 裡的一些指標操作是很容易的。在最下面提供了乙個測試程式,也可以看成使用指南,queue...

佇列 鍊錶 C語言實現

佇列 queue 的基本概念 佇列的影象模擬 佇列的基本操作 初始化佇列,判空,入隊,出隊,讀隊頭元素,清空佇列 順序儲存存在的問題 如果用順序儲存結構,假設陣列最大值為maxsize,我們怎麼判斷隊空呢。我們可以利用用隊尾 rear 和隊頭 front 的相對位置來進行判斷,如果rear fron...