順序棧進(jìn)制轉(zhuǎn)換_第1頁
順序棧進(jìn)制轉(zhuǎn)換_第2頁
順序棧進(jìn)制轉(zhuǎn)換_第3頁
順序棧進(jìn)制轉(zhuǎn)換_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)課程實驗報告課程名稱數(shù)據(jù)結(jié)構(gòu)班級計算123實驗日期2014.05.16-2014.05.29姓名 學(xué)號實驗成績實驗名稱 實驗二 順序棧的實現(xiàn)實驗?zāi)康募耙蟆緦嶒災(zāi)康摹考由罾斫忭樞驐5囊饬x,理解用它的插入與刪除操作的算法?!緦嶒炓蟆坷斫釯nitStack、StackEmpty、Push、Pop和conversion等算法。實驗環(huán)境硬件平臺:普通的PC機(jī)軟件平臺:Windows 7 操作系統(tǒng) 編程環(huán)境:VisualC+ 6.0實驗內(nèi)容【實驗內(nèi)容】用數(shù)制的轉(zhuǎn)換算法調(diào)試順序棧的基本操作算法。編寫主程序調(diào)用數(shù)制的轉(zhuǎn)換conversion算法,再由conversion調(diào)用InitStack、St

2、ackEmpty、Push、Pop算法。用不同的數(shù)轉(zhuǎn)換成不同的進(jìn)制調(diào)試程序并對相應(yīng)的輸出作出分析;修改輸入數(shù)據(jù),預(yù)期輸出并驗證輸出的結(jié)果,加深對Push和Pop算法的理解。 算法描述及實驗步驟1.創(chuàng)建棧鏈表LStack CreateStack() /創(chuàng)建棧鏈表LStack S; S.base=(int *)malloc(L_length * sizeof(int);if(!S.base) exit(-1); S.top=S.base;S.length=L_length;return S;2.壓棧函數(shù)void PushStack(LStack &S,int e) /壓棧3.出棧函數(shù)void Po

3、pStack(LStack &S) /出棧并刪除棧頂元素4.進(jìn)制轉(zhuǎn)換函數(shù)void conversion()/十進(jìn)制轉(zhuǎn)換二進(jìn)制5.主函數(shù)void main()conversion();調(diào)試過程及實驗結(jié)果總結(jié)通過本次實驗,我認(rèn)識到熟練掌握基礎(chǔ)算法的重要性,對棧的含義及其基本算法有了更好的理解和應(yīng)用。?!跋冗M(jìn)后出”的算法加上Push()和Pop()方便了對要轉(zhuǎn)換的數(shù)進(jìn)行讀取,和對轉(zhuǎn)換后數(shù)倒置的輸出。在編寫過程中常遇到的不少問題,例如,變量類型的轉(zhuǎn)換和ASCII碼轉(zhuǎn)義字符的應(yīng)用,變量的定義和范圍,算法循環(huán)語句的退出條件等,我通過不斷調(diào)試,翻閱課本和網(wǎng)上搜索材料得到了解決,也認(rèn)識到這些細(xì)節(jié)上的處理更當(dāng)注

4、意。在調(diào)試時,學(xué)會了在有問題的地方注釋并能經(jīng)常使用printf()函數(shù)測試輸出結(jié)果。在測試時對測試數(shù)據(jù)的選取更當(dāng)考慮全面能檢測錯誤輸入并進(jìn)行提示。通過這次實驗我學(xué)會運(yùn)用課本和老師平時講授知識進(jìn)行切身實踐,通過網(wǎng)絡(luò)搜索學(xué)到了新的庫函數(shù),提高了我實際編寫程序的能力。附錄#include#include#include#define L_length 10#define List_length 10using namespace std;typedef struct LStack int *top,*base; /棧底和棧頂 int length; /棧長LStack,*Stack;LStack C

5、reateStack() /創(chuàng)建棧鏈表LStack S; S.base=(int *)malloc(L_length * sizeof(int);if(!S.base) exit(-1); S.top=S.base;S.length=L_length;return S;void PushStack(LStack &S,int e) /壓棧 if(S.top-S.topS.length) S.base=(int *)realloc(S.base,(L_length+List_length)*sizeof(int); if(!S.base) exit(-1); S.top=S.base+S.length; S.length+=List_length; *S.top=e;S.top+;void PopStack(LStack &S) /出棧并刪除棧頂元素if(S.top!=S.base)S.top-; cout(*S.top);else cout???!;void conversion()/十進(jìn)制轉(zhuǎn)換二進(jìn)制LStack S;int x,i;S=CreateStack();coutx;while(x!=0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論