#include
#include程式設計客棧alloc.h>//記憶體分配標頭檔案
#include//在math.h中已定義overflow的值為3
#define size 100
#define stackincrement 10
#define ok 1
#define error 0
#define true 1
#define false 0
typedef int status;
typedef struct //棧的結構體
selemtype;
typedef struct
sqstack;
typedef struct //qnode //佇列的結構體
qnode,*queueptr;
typedef struct // 鏈佇列型別
linkqueue;
//定義全域性變數
sqstack s;
selemtype e;
linkqueue q;
queueptr p;
char f;
//棧操作
status initstack(sqstack *s)
status push(sqstack *s,selemtype e)
*s->top++=e;
return ok;
}status stackempty(sqstack s)//棧是否為空
status pop(sqstack *s,selemtype *e)
status stacklength(sqstack s)//求棧的長度
//佇列操作
status initqueue(linkqueue *q)
status enqueue(linkqueue *q,char f)
status dequeue(linkqueue *q,char *f)
status queuelength(linkqueue q)www.cppcns.com
return i;
}status queueempty(linkqueue q)
void main()
for(i=i+1; a[i]!='\0'; i++) ////////// 『 &'後的資料進入佇列
enqueue(&q,a[i]);
if( stacklength(s)!=queuelength(q)) /////棧和佇列的資料個數不一樣
printf("no!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
else
while(!stackempty(s)&&!queueempty(q))///////棧和佇列裡還有資料
}if(m==n&&stackempty(s)&&queueempty(q))
printf("yes!!!!!!!");
}執行結果:
本文標題: c語言用棧和佇列實現的回文檢測功能示例
本文位址:
C語言 用棧實現佇列
要想用棧實現佇列功能,則至少需要2個棧。儲存資料的棧按照棧的後進先出原則依次進入另乙個棧,再按照棧的後進先出原則出棧就實現了佇列的先進先出,相當於負負得正的感覺。typedef int type typedef struct stack stack 棧初始化 void stackinit stack...
c語言 棧和佇列的實現
前提知識 順序表優點 可以隨機訪問,cpu快取記憶體利用率高,不涉及 較少 進行插入和刪除操作,應該使用順序表 一般而言,我們使用順序表 陣列 的形式建立 棧這一資料結構。棧 stack 又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一...
C 用棧實現佇列
實現 使用棧實現佇列的下列操作 push x 將乙個元素放入佇列的尾部。pop 從佇列首部移除元素。top 返回佇列首部的元素。empty 返回佇列是否為空。示例 myqueue queue newmyqueue queue.push 1 queue.push 2 queue.top 返回 1 qu...