C語言用棧和佇列實現的回文檢測功能示例

2022-10-04 01:06:10 字數 1510 閱讀 3199

#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...