




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、驗證性實驗3:棧子系統班級: H1001 學號: 09 姓名: 陸俊 實驗日期: 2011.09.2810.12 1實驗目的(1)掌握棧的特點及其描述方法。(2)用鏈式存儲結構實現一個棧。(3)掌握建棧的各種基本操作。(4)掌握棧的幾個典型應用的算法。2實驗內容(1)設計一個字符型的鏈棧。(2)編寫進棧、出棧、顯示棧中全部元素的程序。(3)編寫一個把十進制整數轉換成二進制數的應用程序。(4)編寫一個把中綴表達式轉換成后綴表達式(逆波蘭式)的應用程序。(5)設計一個選擇式菜單,以菜單方式選擇上述操作。 棧 子 系 統* 1-進 棧 * 2-出 棧 * 3-顯 示 * 4-數制轉換 * 5-逆波蘭
2、式 * 0-返 回 *請選擇菜單號(0-5):3 實驗程序(附zhan.cpp)#include<stdio.h>#include<stdlib.h>#define STACKMAX 100typedef struct stacknodeint data;struct stacknode *next;StackNode;typedef structStackNode *top;LinkStack;void Push(LinkStack &s,int x)StackNode *p=new StackNode;p->data=x;p->next=s.to
3、p;s.top=p;int Pop(LinkStack &s,int &x)StackNode *p;if(s.top!=NULL)p=s.top;x=p->data;s.top=p->next;delete p;return 1;elsereturn 0;void ShowStack(LinkStack s)StackNode *p=s.top;if(p=NULL)printf("ntt棧為空。");elseprintf("ntt棧元素為空:");while(p!=NULL)printf("%6d",p-
4、>data);p=p->next;printf("n");void Conversion(int n)LinkStack s;int x;s.top=NULL;dox=n%2;n=n/2;Push(s,x);while(n);printf("ntt轉換后的二進制數值為:");while(Pop(s,x)printf("%d",x);printf("n");void Suffix()char strSTACKMAX;char stackSTACKMAX;char expSTACKMAX;char ch;i
5、nt sum,i,j,t,top=0;printf("ntt輸入算術表達式(運算符只能包含+,-,*,/),以#結束:ntt");fflush(stdin);i=0;doi+;scanf("%c",&stri);while(stri!='#'&&i!=STACKMAX);sum=i;t=1;i=1;ch=stri;i+;while(ch!='#')switch(ch)case '(':top+;stacktop=ch;break;case ')':while(stac
6、ktop!='(')expt+=stacktop-;expt+=','top-;break;case '+':case '-':while(top!=0 && stacktop!='(')expt+=stacktop-;expt+=','stack+top=ch;break;case '*':case '/':while(stacktop='*'|stacktop='/')expt+=stacktop-;expt+=
7、39;,'stack+top=ch;break;case ' ':break;default:while(ch>='0'&&ch<='z')expt+=ch;ch=stri+;i-;expt+=','ch=stri+;while(top!=0)expt+=stacktop-;if(top!=0)expt+=','printf("ntt輸入的中綴表達式:");for(j=1;j<sum;j+)printf("%c",strj);prin
8、tf("nntt后綴表達式:");for(j=1;j<t;j+)printf("%c",expj);printf("n");void main()LinkStack s;int i=1,j=1,val,n;char choice;s.top=NULL;while(1)printf("n");printf("ntt 棧子系統 ");printf("ntt*");printf("ntt* 1-進 棧 *");printf("ntt* 2-出 棧
9、 *");printf("ntt* 3-顯 示 *");printf("ntt* 4-數制轉換 *");printf("ntt* 5-逆波蘭式 *");printf("ntt* 0-返 回 *");printf("ntt*");printf("ntt 請選擇菜單號(0-5):");fflush(stdin);choice=getchar();switch (choice)case '1':while(1)printf("ntt鍵入一個整數(
10、'0'表示結束)并按回車:");scanf("%d",&val);if(val!=0)Push(s,val);elsebreak;break;case '2':if(Pop(s,val)printf("ntt出棧元素為:%6dn",val);elseprintf("ntt棧為空,沒有元素可以出棧!n");break;case '3':ShowStack(s);break;case '4':printf("ntt請輸入一個十進制正整數:");scanf("%d",&n);Conversion(n);break;case '5':Suffix();break;case '0':exit(0);default:printf("ntt輸入菜單錯誤,請重新輸入!n");4. 運行結果5實驗小結今天的實驗花了90分鐘(兩節課)的時間正好把程序代
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國可重復使用防護面罩行業市場全景分析及前景機遇研判報告
- 四川省廣安市2025年中考英語真題附答案
- 看誰算得巧(教學設計)-2024-2025學年四年級下冊數學滬教版
- 2025年中國可降解PLA吸管行業市場全景分析及前景機遇研判報告
- 中國防護文胸行業市場發展前景及發展趨勢與投資戰略研究報告(2024-2030)
- 展柜設計培訓課件
- 2025年中國鉤螺栓行業市場發展前景及發展趨勢與投資戰略研究報告
- 中國深紅硫銻銀礦行業調查建議報告
- 2025年 浙江省考行測考試試題附答案
- 中國數模轉換器行業市場全景監測及投資前景展望報告
- 七年級數學新北師大版(2024)下冊第一章《整式的乘除》單元檢測習題(含簡單答案)
- 固定動火區管理規定、通知及審批表
- 《課件鐵路發展史》課件
- 2025年貴州茅臺酒廠集團招聘筆試參考題庫含答案解析
- 消渴中醫護理查房
- 兒童護照辦理委托書
- 《中藥調劑技術》課件-中藥調劑的概念、起源與發展
- 《數據中心節能方法》課件
- 循環系統疾病智慧樹知到答案2024年哈爾濱醫科大學附屬第一醫院
- 2024-2030年中國激光水平儀行業市場發展趨勢與前景展望戰略分析報告
- 部編本小學語文六年級下冊畢業總復習教案
評論
0/150
提交評論