實驗名稱:棧和佇列的有關操作
實驗室名稱:
實驗台號: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 ...