兩個簡單的佇列和棧的例子

2021-06-07 20:26:10 字數 2346 閱讀 6762

迴圈佇列的簡單程式:

#include #include #define maxsize 256

/***************************************

*定義佇列結構

* **************************************/

typedef struct sqqueue;

/********************************

*初始化佇列

*入口引數:所需初始化佇列指標

* *****************************/

int initqueue(sqqueue *q)

/**********************************

* 佇列長度

* 入口引數:佇列

* 出口引數:佇列長度

******************************** */

int queuelength(sqqueue q)

/*************************************

*入佇列

*入口引數:佇列,入佇列的元素

****** ************************/

int enqueue(sqqueue *q,int e)

/***********************************

*出佇列

*入口函式:佇列 出佇列的元素指標

* *******************************/

int dequeue(sqqueue *q,int *e)

int main(void)

;

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

if(null == q)

int reval;

reval = initqueue(q);

if(reval < 0)

reval= enqueue(q,a[2]);

if(reval <0)

printf(" data entry :%d\n",q->data[q->rear-1]); //尾資料

int b;

reval = dequeue(q,&b);

if(reval<0)

printf("exit queue :%d\n",b);

free(q);

return 0;

}

棧的簡單程式

#include #include typedef int selemtype;/*元素型別,暫時定義成int*/

#define maxsize 256

/**************************

*棧資料結構

***************************/

typedef structsqstack;

/*******************************

*入棧*入口引數:棧指標,入棧元素

*******************************/

int push(sqstack *s,selemtype e)

/*******************************

*出棧*入口引數:棧指標,出棧元素指標

******************************/

int pop(sqstack *s,selemtype *e)

/************************

*初始化棧

*入口引數:棧指標

************************/

int initstack(sqstack *s)

int main(void)

; sqstack *s;

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

if(null == s)

int reval;

initstack(s);

reval = push(s,a[4]);

if(reval<0)

printf("push data:%d\n",s->data[s->top]);

int b=1;

reval = pop(s,&b);

if(reval<0)

printf("pop data:%d\n",b);

free(s);

return 0;

}

兩個佇列實現棧和兩個棧實現佇列

棧 先進後出 佇列 先進先出 1 兩個佇列實現棧 佇列a 佇列b 入棧 入佇列a,1,2,3,4 入棧,在佇列a裡為 a 1,2,3,4 出棧,將佇列a中的元素入佇列b直到佇列a裡的元素只剩下乙個,則隊a為4,隊b為1,2,3,a 4,b 1,2,3,輸出a隊頭4 include include u...

兩個棧實現佇列和兩個佇列實現棧

兩個佇列新增元素,哪個隊列為空,由於在輸出元素時,要進行相應元素的移動 除去尾部元素 所以要在對應不為空的佇列進行元素的新增 在輸出資料時,要進行兩個佇列的變相操作,不為空的佇列要依次向為空的佇列中新增元素,直到尾元素輸出即可!兩個佇列實現乙個棧 public class twoqueueimpls...

兩個佇列實現棧和兩個棧實現佇列

棧 先進後出 佇列 先進先出 1 兩個佇列實現棧 佇列a佇列b 入棧 入佇列a,1,2,3,4 入棧,在佇列a裡為 a 1,2,3,4 出棧,將佇列a中的元素入佇列b直到佇列a裡的元素只剩下乙個,則隊a為4,隊b為1,2,3,a 4,b 1,2,3,輸出a隊頭4 include include us...