棧的表示及棧的應(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),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

2、le Application,再在右邊的框里為工程起好名字,選好路徑,點(diǎn)OK-flmsho至 此工程建立完畢。創(chuàng)建源文件或頭文件:點(diǎn)File-New,選File標(biāo)簽,在列表里選C+ Somce Fileo給文件起好名字,選好路徑,點(diǎn)OK。至此一個(gè)源文件就被添加到了你 剛創(chuàng)建的工程之中。寫好代碼編譯一鏈接一調(diào)試【主要代碼】進(jìn)制轉(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)造一個(gè)空棧S.base=(SElemType *)nialloc (STACK_INIT_SIZE*sizeof(SElemType);if(?S.base) exit (OVERFLOW);/存儲(chǔ)分配失敗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)棧滿,追加存儲(chǔ)空間Sbase=(SElemType*)iealloc(S.base,(S.stacksize-rSTACKINCREMENT)* sizeof(SElemType);if (IS.base) exit(OVERFLOW);/存儲(chǔ)分配失敗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(”請(qǐng)入一個(gè)數(shù)字:”); scanff%d”,&M);printfC需要轉(zhuǎn)換為幾進(jìn)制:”)

6、; scanff%d”,&M);while(N)fPush(S,N % M);N=N/M;pnntf(M其對(duì)應(yīng)的%d進(jìn)制數(shù)是M);while(? StackEnipty(S)(Pop(S,e);prinrff%d”,e);pnntfCW);遞歸程序#include long Fibonacci(iiit n);int n;long L;printf(”請(qǐng)輸入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(將編號(hào)為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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論