數(shù)據(jù)結(jié)構(gòu)實驗二?;静僮鱛第1頁
數(shù)據(jù)結(jié)構(gòu)實驗二?;静僮鱛第2頁
數(shù)據(jù)結(jié)構(gòu)實驗二?;静僮鱛第3頁
數(shù)據(jù)結(jié)構(gòu)實驗二?;静僮鱛第4頁
數(shù)據(jù)結(jié)構(gòu)實驗二?;静僮鱛第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗二 ?;静僮饕弧嶒?zāi)康恼莆諚5幕静僮鳎撼跏蓟?、判空、判滿、入棧、出棧、取棧頂元素等運算。二、實驗要求包含有頭文件和main函數(shù);1. 格式正確,語句采用縮進格式;2. 設(shè)計子函數(shù)實現(xiàn)題目要求的功能;3. 編譯、連接通過,熟練使用命令鍵;4. 運行結(jié)果正確,輸入輸出有提示,格式美觀。三、實驗設(shè)備、材料和工具1. 奔騰2計算機或以上機型2. turboc2,win-tc四、實驗內(nèi)容和步驟實驗內(nèi)容:1. 分析程序。2. 完成程序編寫和補充步驟:3. 確定數(shù)據(jù)的結(jié)構(gòu);4. 利用main函數(shù)調(diào)用各子函數(shù);5. 調(diào)試、分析運行結(jié)果。五、實驗報告要求1. 根據(jù)實驗內(nèi)容初步設(shè)計好程序,并從理論上排除

2、錯誤;2. 針對程序的健壯性準備好測試數(shù)據(jù);3. 結(jié)果分析中如實填寫運行后的結(jié)果,記錄調(diào)試過程中產(chǎn)生的重要問題和解決方法。六、根據(jù)實驗過程填寫下面內(nèi)容基礎(chǔ)部分1.構(gòu)建下列頭文件,文件名稱seqstack.h#define TRUE 1#define FALSE 0#define Stack_Size 500#define StackElementType inttypedef structStackElementType elemStack_Size; /*用來存放棧中元素的一維數(shù)組*/int top; /*用來存放棧頂元素的下標(biāo),top為-1表示空棧*/SeqStack;void InitS

3、tack(SeqStack *S) S-top = -1;int IsEmpty(SeqStack *S) /*判斷棧S為空棧時返回值為真,反之為假*/return(S-top=-1?TRUE:FALSE);int IsFull(SeqStack *S)/*判斷棧S為滿棧時返回值為真,反之為假*/return(S-top=Stack_Size-1?TRUE:FALSE);int Push(SeqStack *S,StackElementType x)if(S-top=Stack_Size-1) return(FALSE); /*棧已滿*/S-top+;S-elemS-top = x;retur

4、n(TRUE);int Pop(SeqStack *S,StackElementType *x) if(S-top = -1) /*棧為空*/return(FALSE);else *x = S-elemS-top;S-top-; /* 修改棧頂指針 */ return(TRUE);int GetTop(SeqStack *S,StackElementType *x) if(S-top = -1) /*棧為空*/return(FALSE);else*x = S-elemS-top; return(TRUE);2.構(gòu)建判斷回文序列的程序,完成運行和調(diào)試?;匚男蛄腥纾盒蛄?&序列2/包含順序棧頭文件

5、#includeseqstack.h/包含順序棧頭文件#include stdio.hvoid main() char ch,temp,str100; int i; SeqStack s;/定義順序棧s InitStack(&s);/初始化順序棧s printf(輸入字符串(以&居中):n); scanf(%s,str); i=0; ch=stri; while(ch!=&)/括號內(nèi)填入判斷條件 Push(&s,ch);/變量ch值入棧 i+;/變量i自增 ch=stri;/賦值str中下一個元素值給ch變量 while(!IsEmpty(&s)/括號內(nèi)填入判斷條件 Pop(&s,&temp)

6、;/s出棧,出棧值存放與temp變量中 i+;/變量i自增 ch=stri;/賦值str中下一個元素值給ch變量 if(temp!=ch) /括號內(nèi)填入判斷條件 break; if(!IsEmpty(&s)|stri+1!=0)/括號內(nèi)填入判斷條件 printf(no!n); else printf(yes!n);3.編寫程序使棧內(nèi)元素倒置(設(shè)置兩個棧,把其中一個棧的元素順序出棧,并順序放入第二個棧中,則第二個棧中元素已經(jīng)倒置)!#include stdio.h/包含基本輸入輸出頭文件#include seqstack.h/包含順序棧頭文件main()SeqStack s,t;/定義兩個棧,s

7、和tchar str100,x;/定義字符數(shù)組str用于存放輸入的入棧字符串,x用于出棧存放的變量int i;printf(請輸入要入棧的字符:n);gets(str);/輸入字符串InitStack(&s);/對棧s進行初始化InitStack(&t);/對棧t進行初始化for(i=0;stri!=0;i+)Push(&s,stri);/順序讀取字符數(shù)組內(nèi)容并入s棧printf(第一個棧的內(nèi)容:n);while(!IsEmpty(&s)Pop(&s,&x);/對棧s出棧,出棧數(shù)據(jù)放入變量x中printf(%cn,x);/輸出x的值Push(&t,x);/對棧t入棧,入棧值為xprintf(第

8、二個棧的內(nèi)容:n);while(!IsEmpty(&t)Pop(&t,&x);/對棧t出棧,出棧數(shù)據(jù)放入變量x中printf(%cn,x);/輸出x的值提高部分4.編寫程序用棧實現(xiàn)進制轉(zhuǎn)換中的數(shù)據(jù)存放問題,完成進制轉(zhuǎn)換功能(轉(zhuǎn)換成二進制)。#includestdio.h#includeseqstack.hvoid main()int x,temp;SeqStack s;InitStack(&s);printf(請輸入x:n);scanf(%d,&x);while(x0)temp=x%2;Push(&s,temp);/*整除2的余數(shù)進棧*/x=x/2;while(!IsEmpty(&s)Pop(&s,&temp);printf(%dn,temp);5.編寫程序用棧實現(xiàn)求fibonacci數(shù)列第n(n=3)個數(shù)的值。#includestdio.h#includeseqstack.hvoid main ()int a,b;int temp;int i;SeqStack s;InitStack(&s);Push(&s,1);Push(&s

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論