佇列的相關實現

2021-08-09 09:18:24 字數 1728 閱讀 8595

1.佇列的鏈式實現方式

**如下:

typedef int datatype;

typedef struct quene//定義乙個結點

quenu,*quenuptr;

typedef struct linkquenu

linkquenu;

void initquene(linkquenu *l)//初始化佇列,建立乙個頭結點

void insertquene(linkquenu *l, datatype e)

void popelem(linkquenu *l, datatype *e)//出佇列操作

quenuptr p = l->front->next;//記錄第乙個結點的值

l->front->next = p->next;//第二個結點給頭結點,如果只有乙個結點此時將front置空了所以下面要進行判斷

*e =p->data;//賦值

if (l->rear == p)//如果只有乙個結點的話

free(p);//釋放第乙個結點

}int getelem(linkquenu *l)//獲取佇列元素

void destroyq(linkquenu *l)//銷毀佇列

2.迴圈佇列

因為順序棧很容易出現假溢位的現象,所以就有了迴圈佇列

**如下:

#include#include#include#include#define max 10

typedef int datatype;

typedef struct circleq

circleq,*circleqptr;

void initcircleq(circleqptr s)//初始化佇列

}void pushelem(circleqptr s, datatype e)

s->data[s->rear] = e;//賦值

s->rear = (s->rear + 1) % max;

}void popelem(circleqptr s, datatype *e)//彈出元素

else }

int getcount(circleqptr s)//或者

佇列的相關操作

include includeusing namespace std define maxsize 100 用順序結構實現的佇列 其中front指向頭結點 rear指向尾元素下乙個結點 typedef struct squeue int dequeue squeue q,char result 從佇...

佇列及棧相關題目的實現

定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。使用兩個棧即可 class solution void pop int top int min private stack basestack stack minstack 編寫乙個類,只能用兩個棧結構實現佇列,支援佇列的基本操作...

佇列實現 佇列的鏈式結構實現

佇列的實現,用單鏈表實現佇列的結構 1 初始化建立佇列 2 釋放佇列 3 清空佇列 4 計算佇列長度 5 判斷佇列是否為空 6 列印佇列元素 7 入隊操作 隊尾插入 8 出隊操作 隊首刪除 include typedef int datatype struct qnode struct lqueue...