實驗內容:
1、用順序儲存定義棧結構。寫出這種儲存方式下的演算法實現,包括:
初始化棧、判棧為空、出棧、入棧
、求棧頂元素
等運算,自己填寫主函式。
2、利用順序棧的基本操作
,設計演算法,
實現將任意乙個十進位制整數轉化為r進製整數
3、用順序儲存來定義迴圈佇列結構。程式設計實現,
初始化佇列
、判佇列
為空、出
佇列、入
佇列、求佇列頭部元素
等運算,自己填寫主函式。
4、利用佇列列印楊輝三角形。
楊輝三角形是形如:
11 1
1 2 1
1 3 3 1
1 4 6 4 1
的三角形,其實質是二項式(a+b)的n次方展開後各項的係數排成的三角形,它的特點是
左右兩邊全是1,從第二行起,中間的每乙個數是上一行裡相鄰兩個數之和。
輸入要列印的層數n,列印出相應的楊輝三角形。
**:#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);
cout
temp=temp+x;
insequeue(q,temp);
outsequeue(q,&x);
cout
cout
outsequeue(q,&x);
cout
sequeue *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 掌握棧 佇列的常見演算法的程式實現。1 採用鏈式儲存實現棧的初始化 入棧 出棧操作。2 採用順序儲存實現棧的初始化 入棧 出棧操作。3 採用鏈式儲存實現佇列的初始化 入隊 出隊操作。4 採用順序儲存實現迴圈佇列的初始化 入隊 出隊操作。5 在主函式中設計乙個簡...
棧和佇列的有關操作
實驗名稱 棧和佇列的有關操作 實驗室名稱 實驗台號 14 學生姓名 專業班級 2015 指導教師 實驗日期 2017 6 9 一 實驗目的1 掌握棧 佇列的思想及其儲存實現。2 掌握棧 佇列的常見演算法的程式實現。二 實驗儀器及環境 pc計算機 windows xp作業系統 visual c 6.0...
有關集合佇列和棧的轉換
這幾天剛好學習了集合collection等子介面,下面是有關的乙個面試題解決方案 cpp view plain copy include include include using namespace std 兩個佇列模擬乙個堆疊 佇列a b 入棧 將元素依次壓入到非空的佇列,第乙個元素壓倒對列a ...