鏈佇列 入隊出隊

2021-08-20 03:09:41 字數 2183 閱讀 8456

#include

#include

typedef struct lnode  

int data;  

struct lnode *next;  

}linklist;  

typedef struct  

linklist *front;  

linklist *rear;  

}linkqueue;  

int inqueue(linkqueue *lq)  

linklist *p=(linklist*)malloc(sizeof(linklist));  

if(p==null)  

printf("初始化失敗

!\n");  

return 0;  

p->next=null;  

lq->front=lq->rear=p;  

return 1;  

int emptyqueue(linkqueue *lq)  

if(lq->front==lq->rear)  

printf("佇列空

!\n");  

return 1;  

return 0;  

int enqueue(linkqueue *lq, int x)  

linklist *s=(linklist *)malloc(sizeof(linklist));  

if(s==null)  

printf("分配空間失敗

!\n");  

return 0;  

s->data=x;  

s->next=null;  

lq->rear->next=s;  

lq->rear=s;  

return 1;  

int getfront(linkqueue *lq, int *x)  

if(emptyqueue(lq))  

printf("隊空

!\n");  

return 0;  

*x=lq->front->next->data;  

return 1;  

int outqueue(linkqueue *lq, int *x)  

linklist *p;  

if(emptyqueue(lq))  

printf("隊空

!\n");  

return 0;  

p=lq->front->next;  

*x=p->data;  

lq->front->next=p->next;  

if(lq->front->next==null)  

lq->rear=lq->front;  

free(p);  

return 1;  

int main()  

linkqueue *q;  

q=(linkqueue *)malloc(sizeof(linkqueue));  

linklist *p;  

int n,m,x,fx;  

inqueue(q);  

printf("請輸入入隊元素個數

n:\n");  

scanf("%d",&n);  

printf("請輸入入隊元素:

\n");

for(int i=1; i<=n; i++)  

scanf("%d",&m);

enqueue(q, m);  

getfront(q, &fx);  

printf("隊首元素

:%d\n", fx);  

printf("輸出佇列元素

:\n");  

for(p=q->front->next; p!=null; p=p->next)  

printf("%3d", p->data);  

for(int i=1; i<=n; i++)  

outqueue(q, &x);  

printf("\n出隊元素

:%d\n", x);  

system("pause");  

return 0;  

執行結果:

鏈佇列的入隊 出隊

test demo.cpp 定義控制台應用程式的入口點。include stdafx.h include stdio.h include windows.h define queuesize 100 假定預分配的佇列空間最多為100個元素 typedef char datatype 假定佇列元素的資...

鏈佇列的儲存和入隊出隊操作

今天看圖的廣度優先遍歷的時候,發現用到了佇列,補一下鏈佇列的知識,參考 大話資料結構 的p118 120,自己寫了乙個簡單的測試例子便於理解。理解起來並不難,用的是單鏈表結構。front指向鍊錶的頭結點 是虛結點,它的next指向第乙個節點 rear指向鍊錶的尾節點。下面舉個簡單的例子,實現鏈佇列的...

佇列的入隊 出隊操作

程式設計實現佇列的入隊 出隊操作 先進先出 include using namespace std node表示佇列中每個節點元素 typedef struct node node queue表示佇列 typedef struct queue queue 建立空佇列 queue createqueu...