棧和佇列的有關操作

2021-08-14 14:05:39 字數 1957 閱讀 2014

實驗名稱:棧和佇列的有關操作

實驗室名稱:

實驗台號:14

學生姓名: 

專業班級: 2015

指導教師:

實驗日期:2017-6-9

一、實驗目的1、

掌握棧、佇列的思想及其儲存實現。 2、

掌握棧、佇列的常見演算法的程式實現。

二、實驗儀器及環境:

pc計算機;windows xp作業系統、visual c++6.0、codeblocks 1、

#include

#include

#include

#include

#define maxsize 1000

using namespace std;

typedef structseqstack;

void init(seqstack *s)seqstack;

void init(seqstack *s)sequeue;

int init(sequeue *q)sequeue;

int init(sequeue *q){

if((q=((sequeue *)malloc(sizeof(sequeue))))==null)

return 0;

q->front_=0;

q->rear_=0;

return 1;

int empty(sequeue *q){

if(q->front_==q->rear_)

return 1;

else

return 0;

int insequeue(sequeue *q,int x){

if((q->rear_+1)%maxsize==q->front_){

return -1;

else{

q->data[q->rear_]=x;

q->rear_=(q->rear_+1)%maxsize;

return 1;

int outsequeue(sequeue *q,int *x){

if(q->front_==q->rear_){

return -1;

else{

*x=q->data[q->front_];

q->front_=(q->front_+1)%maxsize;

return 1;

int gethead(sequeue *q,int *x){

if(q->front_==q->rear_)

return 0;

*x=q->data[q->front_];

return 1;

void yanghui********( sequeue *q,int n)

int n,i,x,temp;

init(q);

insequeue(q,1);

for(n=2;n<=n;n++)

insequeue(q,1);

for(i=1;i<=n-2;i++)

outsequeue(q,&temp);

couttemp=temp+x;

insequeue(q,temp);

outsequeue(q,&x);

coutcoutoutsequeue(q,&x);

coutsequeue *s;

int x,num=10,st;

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

init(s);

int n=0;

cin>>n;

yanghui********(s,n);

return 0;

1、2、

3、4、

結構體傳參時採用的是結構體的引用,迴圈佇列注意判斷隊滿和隊空的條件,注意堆疊和佇列資料進入和出去的方向。

簽名: 年月日

棧和佇列的有關操作

1 掌握棧 佇列的思想及其儲存實現。2 掌握棧 佇列的常見演算法的程式實現。1 採用鏈式儲存實現棧的初始化 入棧 出棧操作。2 採用順序儲存實現棧的初始化 入棧 出棧操作。3 採用鏈式儲存實現佇列的初始化 入隊 出隊操作。4 採用順序儲存實現迴圈佇列的初始化 入隊 出隊操作。5 在主函式中設計乙個簡...

棧和佇列的有關操作

實驗內容 1 用順序儲存定義棧結構。寫出這種儲存方式下的演算法實現,包括 初始化棧 判棧為空 出棧 入棧 求棧頂元素 等運算,自己填寫主函式。2 利用順序棧的基本操作 設計演算法,實現將任意乙個十進位制整數轉化為r進製整數 3 用順序儲存來定義迴圈佇列結構。程式設計實現,初始化佇列 判佇列 為空 出...

有關集合佇列和棧的轉換

這幾天剛好學習了集合collection等子介面,下面是有關的乙個面試題解決方案 cpp view plain copy include include include using namespace std 兩個佇列模擬乙個堆疊 佇列a b 入棧 將元素依次壓入到非空的佇列,第乙個元素壓倒對列a ...