棧的表示及棧的應(yīng)用_第1頁
棧的表示及棧的應(yīng)用_第2頁
棧的表示及棧的應(yīng)用_第3頁
棧的表示及棧的應(yīng)用_第4頁
棧的表示及棧的應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、實驗二:棧的表示及棧的應(yīng)用【實驗?zāi)康摹浚?)掌握棧的順序存儲結(jié)構(gòu)及其基本操作的實現(xiàn)。(2)掌握棧后進先出的特點,并利用其特性在解決實際問題中的應(yīng)用。(3)掌握用遞歸算法來解決一些問題?!緦嶒瀮?nèi)容】編寫程序,對于輸入的任意一個非負十進制整數(shù),輸出與其等值的八進 制數(shù)(課本P48)O編寫遞歸程序,實現(xiàn)以下函數(shù)的求解(課本P54)of n,n = 0,1Fib(n) = (Fib(n -1) + Fib (it - 2), n 1編寫程序,實現(xiàn)Hanoi塔問題(課本P55-P58)。【實驗步驟】1 .打開VC十十。建立工程:點File-New,選Project標(biāo)簽,在列表中選 Win32 Conso

2、le Application,再在右邊的框里為工程起好名字,選好路徑,點OK-flmsho至 此工程建立完畢。創(chuàng)建源文件或頭文件:點File-New,選File標(biāo)簽,在列表里選C+ Somce Fileo給文件起好名字,選好路徑,點OK。至此一個源文件就被添加到了你 剛創(chuàng)建的工程之中。寫好代碼編譯一鏈接一調(diào)試【主要代碼】進制轉(zhuǎn)換#iiiclude #iiiclude define OK 1#define ERROR 0#define OVERFLOW .2 typedef int Status;typedef int SElemType;#define STACK_INIT_SIZE100#d

3、efine STACKINCREMENT10 typedef stmct (SElemType*base;SElemType*top;int stacksize;)SqStack;Status IiiitStack(SqStack &S)(/構(gòu)造一個空棧S.base=(SElemType *)nialloc (STACK_INIT_SIZE*sizeof(SElemType);if(?S.base) exit (OVERFLOW);/存儲分配失敗S.top=S.base;S.stacksize=STACK INIT SIZE;leturn OK;/IiiitStackStatus Push(S

4、qStack &S, SElemType e)(插入元素e為新的棧頂元素if (S. top-S. base=S. stacksize)棧滿,追加存儲空間Sbase=(SElemType*)iealloc(S.base,(S.stacksize-rSTACKINCREMENT)* sizeof(SElemType);if (IS.base) exit(OVERFLOW);/存儲分配失敗S .top=S. base+ S. stacksize;S.stacksize+=STACKINCREMENT;)*S.top+=e;return OK; /PUSHStatus Pop(SqStack &S,

5、 SElemType &e)若棧不空,則刪除S的棧頂元素,用e返回其值,并返回OK;否則返回ERRORif(S.top=S.base)return ERROR;e=*-S.top;return OK; /PopStatus StackEmpty(SqStack S)若棧不空,返回ERROR.否則返回OKif (S.top=S.base)return OK;return ERROR; /StackEmptyvoid main()(int N,e,M;SqStack S;IiutStack(S);printf(”請入一個數(shù)字:”); scanff%d”,&M);printfC需要轉(zhuǎn)換為幾進制:”)

6、; scanff%d”,&M);while(N)fPush(S,N % M);N=N/M;pnntf(M其對應(yīng)的%d進制數(shù)是M);while(? StackEnipty(S)(Pop(S,e);prinrff%d”,e);pnntfCW);遞歸程序#include long Fibonacci(iiit n);int n;long L;printf(”請輸入n的值:, scanff%d”.&n);L=Fibonacci(n);printf(,Fibonacci(%d)=%ldnn,L);long Fibonacci(iiit n)long t=l;if(n=l|n=0)t=t*n;t=Fibonacci(n-l)+Fibonacci(n-2);return t;漢諾塔#iiicludevoid move(char a.iiit n.char b)printf(將編號為d的盤從移到c nM,n,a,b);void haiioi(mt n,char x.char y,char z)if(n=l)move(x,l,z);elsehanoi(n-l,x,z,y);move(x,n,z);hanoi(n-l,y,x,z);void main()int n;pnntf(iW輸入 n 的值:”);scanff%d”.&n);hanoi(na;b、c,);

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論