




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗(二)實驗名稱棧與隊列應用軟件環(huán)境Windows98/2000, VC+6.0或turbo C硬件環(huán)境P以上微型計算機實驗目的理解棧和隊列的邏輯特點,掌握?;蜿犃谢静僮鞯膶崿F,能運用?;蜿犃薪鉀Q實際應用問題。實驗內容(應包括實驗題目、實驗要求、實驗任務等)所謂回文,是指從前向后順讀和從后向前倒讀都一樣的字符串。例如,did pop I was able,elba saw I 等等。 編寫程序,實現一個棧,并利用它判斷一個字符串是否是回文。實驗過程與實驗結果(可包括實驗實施的步驟、算法描述、流程、結論等)實驗步驟及算法描述和流程:1. 創(chuàng)建有關順序棧的基本運算函數棧底的位置固定不變,棧頂的
2、位置隨著進棧和退棧操作而動態(tài)變化,所以順序棧需要一個變量top來指示當前棧頂的位置。1.1 初始化棧為順序棧分配連續(xù)的棧空間,同時置空棧;1.2 判斷棧是否為空??諚酥緸椋簵m斨羔?棧底指針;1.3 銷魂棧棧為空則返回1,否則返回0;1.4 進棧操作首先判斷棧的狀態(tài),若未滿,則top+1,然后將入棧元素置于棧頂指針top所指的存儲單元中,使之指向新的棧頂,若棧滿,發(fā)生“上溢”,程序退出。1.5 退棧操作首先判斷棧的狀態(tài),若不空,則top-1,使其指向新的棧頂,若為空,發(fā)生“下溢”,程序退出。2. 運用順序棧結構實現回文問題使用棧,將字符串的前一半入棧,再依次出棧,與后一半進行比較,若不相等,
3、則不是回文,否則是回文2.1 初始化棧s;2.2 利用i記錄循環(huán)次數,i的初始值為1,循環(huán)直到i=字符串的一半時結束字符串下標為i的字符依次入棧。2.3 若字符串長度為偶數,i值不變,否則i+1;2.4 利用while循環(huán),依次比較下標為i的字符串中的字符與出棧元素是否相等,以j=1,作為標志,若不等j=0并打斷循環(huán)2.5 返回j的值,j=1,則字符串是回文,否則不是回文3. 主函數3.1 首先輸入字符串的長度,然后依次輸入字符;3.2 輸出字符串;3.3 調用函數判斷字符串是否是回文。結論:實驗中,輸入字符串長度3,輸入字符串did,輸出did是回文 輸入字符串長度21,輸入字符串I was
4、 able,elba saw I,輸出I was able,elba saw I 是回文。實驗中曾出現的問題,在主函數字符串的輸入以下標0開始,可是下標為0的字符卻不是輸入的第一個字符,輸入是從下標為1的字符開始,改正后,字符的輸出和入棧都從下標為1的字符開始。附錄(可包括源程序清單或其它說明)#include#include#define StackInitSize 100typedef struct /順序棧的儲存結構char dataStackInitSize;int top;SeqStack;SeqStack *InitStack() /棧的初始化SeqStack *s;s=(SeqS
5、tack *)malloc(sizeof(SeqStack);if(s!=NULL)s-top=-1;return s;else printf(沒有足夠的內存空間,申請失敗,程序運行終止!n); exit(0);int IsEmpty(SeqStack *s) /判斷棧是否為空return (s-top=-1)?1:0;void DestroyStack(SeqStack *s) /銷毀棧free(s);printf(棧已銷毀!n);void Push(SeqStack *s,char x) /進棧if(s-top=StackInitSize)printf(棧滿!程序運行終止!n);exit(
6、0);elses-top+;s-datas-top=x;char Pop(SeqStack *s) /退棧char temp;if(IsEmpty(s)printf(棧空!程序運行終止!n);exit(0);elsetemp=s-datas-top;s-top-;return temp;int judge_huiwen(char a,int n) /判斷一個字符串是否是回文SeqStack *s;s=InitStack();int i=1,j=1;while(i=n/2)Push(s,ai);i+;if(n%2!=0)i+;while(i=n&j=1)if(ai=Pop(s)i+;elsej=0;break;return j;void main()char a100;int i=0,n;printf(請先輸入一個字符串的長度:);scanf(%d,&n);printf(請輸入字符串:);for(i=0;i=n;i+)scanf(%c,&ai);for(i=1;i=n;i+) printf(%c,ai);if(judge_huiwen(a,n)printf(是回文。n);else printf(不是回文。n);運行結果: 天津理工大學計算機科學與工程系實驗報告2011 至 20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年撫順市稅務系統(tǒng)遴選面試真題附解析含答案
- 2024年事業(yè)單位考試四川省涼山彝族自治州《公共基礎知識》深度預測試題含解析
- 老年人醫(yī)藥消費行為調查分析
- 老年衛(wèi)生健康宣教課件
- 老師職業(yè)介紹
- 老師關愛留守兒童課件
- 老師介紹自己的課件
- 房地產開發(fā)不定期按揭貸款借款合同
- 美食廣場承包經營與品牌整合管理合同
- 美術生班會課件
- LS 8010-2014植物油庫設計規(guī)范
- GB/T 20041.21-2017電纜管理用導管系統(tǒng)第21部分:剛性導管系統(tǒng)的特殊要求
- GB/T 19465-2004工業(yè)用異丁烷(HC-600a)
- GB/T 18255-2022焦化粘油類產品餾程的測定方法
- GB/T 11832-2002翻斗式雨量計
- 防損培訓課程之一防損基礎知識
- GA/T 1147-2014車輛駕駛人員血液酒精含量檢驗實驗室規(guī)范
- 學前兒童心理學論文
- 輪機英語詞匯匯總
- 溝通秘訣-報聯(lián)商課件
- 充電樁檢測報告模板
評論
0/150
提交評論