版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)三--順序棧操作實(shí)現(xiàn)實(shí)驗(yàn)三--順序棧操作實(shí)現(xiàn)實(shí)驗(yàn)三--順序棧操作實(shí)現(xiàn)xxx公司實(shí)驗(yàn)三--順序棧操作實(shí)現(xiàn)文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度實(shí)驗(yàn)三順序棧操作實(shí)現(xiàn)實(shí)驗(yàn)日期:2017年4月1日實(shí)驗(yàn)?zāi)康募耙?.熟練掌握棧的結(jié)構(gòu),以及這種數(shù)據(jù)結(jié)構(gòu)的特點(diǎn);2.能夠在兩種存儲(chǔ)結(jié)構(gòu)上實(shí)現(xiàn)棧的基本運(yùn)算,特別注意棧滿和??盏呐袛鄺l件及描述方法。實(shí)驗(yàn)內(nèi)容已知順序棧的類型定義如下:#defineMAX100typedefchardatatype;typedefstruct{datatypedata[MAX];inttop;}SeqStack,*SeqStackptr;任務(wù)1.題目要求任務(wù)一:創(chuàng)建自定義頭文件,包含順序棧的數(shù)據(jù)類型定義及基本操作函數(shù),需定義的基本操作如下:(1)voidError(char*s);/*自定義錯(cuò)誤處理函數(shù)*/(2)voidInitStack(SeqStackptrsp);/*初始化?!每諚?/(3)intEmptyStack(SeqStackptrsp);/*判???/(4)intFullStack(SeqStackptrsp);/*判棧滿*/(5)voidPush(SeqStackptrsp,datatypex);/*進(jìn)棧(元素壓入棧頂)*/(6)datatypePop(SeqStackptrsp);/*出棧(元素從棧頂彈出)*/(7)datatypeGetTop(SeqStackptrsp);/*讀棧頂元素(不出棧)*/(8)intCount(SeqStackptrsp);/*計(jì)算棧中元素個(gè)數(shù)*/任務(wù)二:創(chuàng)建一個(gè)新的程序文件,請(qǐng)調(diào)用提供的順序棧操作的函數(shù)完成把源文本文件中的所有十進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的指定進(jìn)制的數(shù)值存于新的文本文件中,要求定義如下函數(shù):(1)voidTrans(intn,intr,charstr[])功能:把n整數(shù)轉(zhuǎn)換為r進(jìn)制的值并存于str數(shù)組中;(2)voidTransFile(intr,charstrin[],charstrout[]);功能:把strin文件中十進(jìn)制整數(shù)轉(zhuǎn)換為r進(jìn)制的值并存于文件strout中。其中strin和strout字符數(shù)組中分別存放源文件名和目標(biāo)文件名。(思路:1.以只讀方式打開strin中的文件,以只寫方式打開存于strout中的文件2.循環(huán)讀取strin文件(1)讀一個(gè)整數(shù)到變量num中(2)調(diào)用Trans函數(shù)將num轉(zhuǎn)換為r進(jìn)制的字符串result(3)將字符串result寫入到文件strout中3.關(guān)閉strin文件,strout文件。)(3)main函數(shù)中準(zhǔn)備指定進(jìn)制r的值,源文件名和目標(biāo)文件名,調(diào)用TransFile函數(shù)完成相應(yīng)要求。2.請(qǐng)回答下列問(wèn)題(1)棧是限定在表的一端進(jìn)行插入或刪除操作的線性表,其操作原則是后進(jìn)先出。(2)一個(gè)不帶表頭結(jié)點(diǎn)鏈棧的棧頂指針是top,每個(gè)結(jié)點(diǎn)包含值域data和指針域next,判斷??盏臈l件為top==NULL,當(dāng)p所指向的結(jié)點(diǎn)入棧,首先執(zhí)行判斷棧是否滿,然后執(zhí)行p->data[p->top++]=x操作。(3)設(shè)數(shù)組S[100]存儲(chǔ)一個(gè)順序棧的元素,變量top指示下一個(gè)入棧元素在數(shù)組中的下標(biāo)位置,棧為空的條件是top-1==NULL,棧為滿的條件是top>=100。3.及源程序清單(含必要的注釋):#include<>#include<>#defineMAX100typedefchardatatype;typedefstruct{ datatypedata[MAX]; inttop;}SeqStack,*SeqStackptr;SeqStacks;SeqStackptrsp;voidError(char*s);/*自定義錯(cuò)誤處理函數(shù)*/voidInitStack(SeqStackptrsp);/*初始化?!每諚?/intEmptyStack(SeqStackptrsp);/*判???/intFullStack(SeqStackptrsp);/*判棧滿*/voidPush(SeqStackptrsp,datatypex);/*進(jìn)棧(元素壓入棧頂)*/datatypePop(SeqStackptrsp);/*出棧(元素從棧頂彈出)*/datatypeGetTop(SeqStackptrsp);/*讀棧頂元素(不出棧)*/intCount(SeqStackptrsp);/*計(jì)算棧中元素個(gè)數(shù)*/voidError(char*s)/*自定義錯(cuò)誤處理函數(shù)*/{ printf("\n%s",s); exit(1);/*返回OS,該函數(shù)定義在中*/}voidInitStack(SeqStackptrsp)/*初始化棧——置空棧*/{ sp->top=0;}intEmptyStack(SeqStackptrsp)/*判???/{ returnsp->top==0;/*返回值為1,??眨环祷刂禐?,棧不空*/}intFullStack(SeqStackptrsp)/*判棧滿*/{ returnsp->top>=MAX;/*返回值為1,棧滿;返回值為0,棧不滿*/}voidPush(SeqStackptrsp,datatypex)/*進(jìn)棧(元素壓入棧頂)*/{ if(FullStack(sp)){/*若棧滿*/ Error("StackFull"); } sp->data[sp->top]=x; sp->top++;}datatypePop(SeqStackptrsp)/*出棧(元素從棧頂彈出)*/{ if(EmptyStack(sp)){/*若???/ Error("StackEmpty"); } sp->top--; returnsp->data[sp->top];}datatypeGetTop(SeqStackptrsp)/*讀棧頂元素(不出棧)*/{ if(EmptyStack(sp)){/*若???/ Error("StackEmpty"); } returnsp->data[sp->top-1];}intCount(SeqStackptrsp)/*計(jì)算棧中元素個(gè)數(shù)*/{ returnsp->top;}:#include""voidTrans(intn,intr,charstr[]);/*把n整數(shù)轉(zhuǎn)換為r進(jìn)制的值并存于str數(shù)組中*/voidTransFile(intr,charstrin[],charstrout[]);/*把strin文件中十進(jìn)制整數(shù)轉(zhuǎn)換為r進(jìn)制的值并存于文件strout中。其中strin和strout字符數(shù)組中分別存放源文件名和目標(biāo)文件名*/voidmain(){ intr; chars[MAX],t[MAX]; printf("請(qǐng)輸入進(jìn)制r的值:"); scanf("%d",&r); TransFile(r,s,t);}voidTrans(intn,intr,charstr[]){/*把n整數(shù)轉(zhuǎn)換為r進(jìn)制的值并存于str數(shù)組中*/ inti,c; SeqStacks; InitStack(&s); do{ c=n%r; if(c<10){ c=c+'0'; } else{ c=c-10+'a'; } Push(&s,c); }while(n/=r); i=0; while(!EmptyStack(&s)){ str[i++]=Pop(&s); } str[i]='\0';}voidTransFile(intr,charstrin[],charstrout[]){/*把strin文件中十進(jìn)制整數(shù)轉(zhuǎn)換為r進(jìn)制的值并存于文件strout中。其中strin和strout字符數(shù)組中分別存放源文件名和目標(biāo)文件名*/ intnum,i,n; charresult[MAX]; FILE*fin; FILE*fout; if((fin=fopen("D:/","r"))==NULL){ Error("Cannotopenfile!"); } if((fout=fopen("D:/","w"))==NULL){ Error("Cannotopenfile!"); } fprintf(fout,"源數(shù)據(jù)轉(zhuǎn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上饒市玉山縣中醫(yī)院公開招聘編外專業(yè)技術(shù)人員11人備考題庫(kù)完整參考答案詳解
- 2025年福建教育學(xué)院附屬集美實(shí)驗(yàn)學(xué)校美山分校招聘頂崗教師備考題庫(kù)及1套參考答案詳解
- 2025年航招教育良謀士鷹匯同心哺芳華柳州市航鷹中學(xué)招聘教師備考題庫(kù)及答案詳解參考
- 2025年清華大學(xué)軟件學(xué)院教師崗位招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 2025年金華海關(guān)綜合技術(shù)服務(wù)中心招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 海鹽農(nóng)商銀行2025社會(huì)招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 大鼠骨髓與前交叉韌帶來(lái)源間充質(zhì)干細(xì)胞:體外特性的深度比較與分析
- 2025年遵義醫(yī)科大學(xué)第二附屬醫(yī)院省校合作赴省外知名高校引才10名備考題庫(kù)及答案詳解1套
- 2025年成都經(jīng)開區(qū)龍泉驛區(qū)面向社會(huì)公開招聘醫(yī)療衛(wèi)生事業(yè)單位員額人員139人備考題庫(kù)及一套完整答案詳解
- 2025年P(guān)OPs環(huán)境行為與控制原理研究組科研財(cái)務(wù)助理招聘?jìng)淇碱}庫(kù)附答案詳解
- 人教版美術(shù)-裝飾畫教學(xué)課件
- pronterface使用手冊(cè)打開Pronterface軟件后在未連接機(jī)之前呈現(xiàn)灰面
- 焊裝夾具設(shè)計(jì)制造技術(shù)要求
- 大金龍純電動(dòng)車hvcm及bms外網(wǎng)協(xié)議
- NY/T 455-2001胡椒
- GB/T 18710-2002風(fēng)電場(chǎng)風(fēng)能資源評(píng)估方法
- 《家庭、私有制和國(guó)家的起源》課件
- 正確使用CS100主動(dòng)脈內(nèi)球囊反搏泵-不良反應(yīng)-常見(jiàn)問(wèn)題課件
- 安徽開放大學(xué)合同法形考任務(wù)2(第5-8章權(quán)重30%)答卷
- 水土保持工程施工監(jiān)理實(shí)務(wù)課件
- (建設(shè)銀行)供應(yīng)鏈融資產(chǎn)品介紹課件
評(píng)論
0/150
提交評(píng)論