版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)序號(hào):4實(shí)驗(yàn)項(xiàng)目名稱:棧的操作
學(xué)號(hào)姓名專業(yè)、班
實(shí)驗(yàn)地點(diǎn)實(shí)1#514指導(dǎo)教師林仙麗實(shí)驗(yàn)時(shí)間2022-12-06
一、實(shí)驗(yàn)?zāi)康募耙?/p>
1.熟悉棧的基本概念;
2.掌握棧的順序存儲(chǔ)結(jié)構(gòu);
3.掌握棧的應(yīng)用。
二、實(shí)驗(yàn)設(shè)備(環(huán)境)及要求
微型計(jì)算機(jī);
windows操作系統(tǒng);
MicrosoftVisualStudio6.0集成開辟環(huán)境。
三、實(shí)驗(yàn)內(nèi)容與步驟
1.棧的順序表表示和實(shí)現(xiàn)的如下:
#include<iostream>
ttdefineMaxSize100
usingnamespacestd;
typedefintElemType;
typedefstruct
(
ElemTypedata[MaxSize];
inttop;
}SqStack;
voidInitStack(SqStack*st)〃初始化棧
(
st->top=-l;
}
intStackEmpty(SqStack*st)〃判斷棧為空
return(st->top==-l);
}
voidPush(SqStack*st,ElemTypex)〃元素進(jìn)棧
(
if(st->top==MaxSize~l)
(
printf("棧上溢出!\n〃);
)
else
(
st->top++;〃挪移棧頂位置
st->data[st->top]=x;//元素進(jìn)棧
)
}
voidPop(SqStack*st,ElemType&e)〃出棧
(
if(st->top==-l)
(
printf(〃棧下溢出\n〃);
}
else
(
e=st->data[st->top];//元素出棧
st->top-;〃挪移棧頂位置
)
)
intmain()
(
SqStackL;
SqStack*st=&L;
ElemTypee;
inti;
InitStack(st);
for(i=l;i<10;++i)
(
Push(st,i);
printf(〃入棧元素是:%d\nz,,i);
)
for(i=l;i<10;++i)
(
Pop(st,e);
printf(“出棧元素是:%d\n〃,e);
)
return0;
)
改寫以上程序,實(shí)現(xiàn)功能如下:
改寫Push和Pop函數(shù),使得以上兩個(gè)函數(shù)可以一次性將一個(gè)數(shù)組入棧和出棧。
2.C/C++的庫(kù)函數(shù)中已經(jīng)實(shí)現(xiàn)了棧,實(shí)例如下:
#include<stack>〃引入棧
usingnamespacestd;
intmain()
(
inta;
stack<int>s;
scanf(%d”,&a);
s.push(a);〃入棧
printf("d\n”,s.top());〃取得棧頂元素輸出
s.pop();〃出棧
return0;
)
請(qǐng)根據(jù)以上程序,設(shè)計(jì)算法如下(任選一題):
1.判別一個(gè)算術(shù)表達(dá)式中的圓括號(hào)配對(duì)是否正確。
運(yùn)行結(jié)果截圖:
2.判別一個(gè)算術(shù)表達(dá)式中的圓括號(hào)和方括號(hào)配對(duì)是否正確。
運(yùn)行結(jié)果截圖:
四、分析與討論
因?yàn)橛辛松弦徽碌木毩?xí),使得棧做起來(lái)相對(duì)容易。
對(duì)上機(jī)實(shí)踐結(jié)果進(jìn)行分析,上機(jī)的心得體味。
五、教師評(píng)語(yǔ)成績(jī)
簽名:
日期:
附源程序清單:
1.
#include<stdio.h>
include<eh.h>
#include<iostream>
#defineMaxSize100
usingnamespacestd;
typedefintElemType;
typedefstruct
(
ElemTypedata[MaxSize];
inttop;
}SqStack;
voidlnitStack(SqStack*st)〃初始化棧
{
st->top=-1;
)
intStackEmpty(SqStack*st)//判斷棧為空
(
return(st->top==-1);
)
voidPush(SqStack*st,ElemTypex)//元素進(jìn)棧
(
if(st->top==MaxSize-1)
(
printf("棧上溢出柱n");
)
else
st->top++;//挪移棧頂位置
st->data[st->top]=x;〃元素進(jìn)棧
voidPop(SqStack*st,ElemType&e)//出棧
(
if(st->top==-1)
(
printf("棧下溢出\n下
)
else
(
e=st->data[st->top];〃元素出棧
st->top-;//挪移棧頂位置
voidPush1(SqStack*st)//元素進(jìn)棧
(
intx[5];
inti;
if(st->top==MaxSize-1)
(
printf("棧上溢出!\n");
)
else
(
printf("請(qǐng)輸入5個(gè)元素:)
for(i=0;i<5;i++)
scanf("%d",&x[i]);
for(i=4;i>=0;i—)
(
st->top++;〃挪移棧頂位置
st->data[st->top]=x[i];〃元素進(jìn)棧
)
}
)
voidPop1(SqStack*st)〃出棧
(
inti,x[5];
if(st->top==-1)
printf("棧下溢出\n");
}
else
for(i=0;i<5;i++)
(
x[i]=st?>data[st->top];〃元素出棧
st->top-;〃挪移棧頂位置
)
printff出棧數(shù)組為:\nH);
for(i=0;i<5;i++)
printf("%dH,x[i]);
printf(M\n");
)
)
intmain()
(
SqStackL;
SqStack*st=&L;
ElemTypee;
inti,x[5],a;
InitStack(st);
Push1(st);
Push1(st);
Push1(st);
Pop1(st);
/*for(i=1;i<10;++i)
(
Push(st,i);
printf("入棧元素是:%d\n',i);
)
for(i=1;i<10;++i)
(
Pop(st,e);
printf("出棧元素是:%d\n",e);
}*/
return0;
)
2.
#include<stack>〃引入棧
usingnamespacestd;
voidmain()
intsign=1;
chara,b='(*;
stack<char>s;
printf(”請(qǐng)輸入算術(shù)表達(dá)式,以#為結(jié)束標(biāo)志:\nn);
a=getchar();
while(a!='#>)
(
switch(a)
(
case
s.push(a);
break;
case
if(s.top()=='(')
s.pop();
else
sign=0;
br
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021學(xué)年遼寧省沈陽(yáng)市郊聯(lián)體高一下學(xué)期期末考試地理試題
- 小學(xué)四年級(jí)多位數(shù)乘除法400題
- 學(xué)校愛國(guó)衛(wèi)生建設(shè)工作計(jì)劃
- 兒童蛀牙傷害大
- 命題作文“釋放”寫作指導(dǎo)及佳作
- 《白血病的規(guī)范化療》課件
- 《加油站HSE管理》課件
- 《龍?bào)撮L(zhǎng)城模板》課件
- 汽車工程師的工作總結(jié)
- 化工行業(yè)銷售業(yè)績(jī)總結(jié)
- GB/T 42752-2023區(qū)塊鏈和分布式記賬技術(shù)參考架構(gòu)
- Module 9 (教案)外研版(一起)英語(yǔ)四年級(jí)上冊(cè)
- 初中物理-初三物理模擬試卷講評(píng)課教學(xué)課件設(shè)計(jì)
- DG-TJ 08-2367-2021 既有建筑外立面整治設(shè)計(jì)標(biāo)準(zhǔn)
- 公文流轉(zhuǎn)單(標(biāo)準(zhǔn)模版)
- 深入淺出Oracle EBS之OAF學(xué)習(xí)筆記-Oracle EBS技術(shù)文檔
- XXX大中型公司報(bào)價(jià)管理辦法
- 四年級(jí)計(jì)算題大全(列豎式計(jì)算,可打印)
- 年會(huì)主持詞:企業(yè)年會(huì)主持詞
- LS 8010-2014植物油庫(kù)設(shè)計(jì)規(guī)范
- GB/T 9119-2000平面、突面板式平焊鋼制管法蘭
評(píng)論
0/150
提交評(píng)論