




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、該程序定義了鏈?zhǔn)綏#5逆準(zhǔn)酱鎯Y(jié)構(gòu))的存儲結(jié)構(gòu),并實現(xiàn)了鏈?zhǔn)綏5幕静僮?,例?初始化、銷毀、判空、獲取長度,插入、刪除、獲取棧頂元素,遍歷。(一)該頭文件定義了鏈?zhǔn)綏5拇鎯Y(jié)構(gòu)(帶頭節(jié)點),對鏈?zhǔn)綏5幕静僮鞯暮瘮?shù)原型進行了聲明(linkStack.h)。#pragmaonce保證頭文件被編譯一次/定義函數(shù)結(jié)果狀態(tài)代碼# defineTRUE1# defineFALSE0# defineOK1# defineERROR0# defineOVERFLOW-1# defineUNDERFLOW-2/定義函數(shù)返回值類型typedefintStatus;/定義鏈?zhǔn)綏5臄?shù)據(jù)元素的類型typedefi
2、ntElemType;/定義鏈?zhǔn)綏5拇鎯Y(jié)構(gòu)structLNodeElemTypedata;/數(shù)據(jù)域structLNode*next;指針域;structLStackstructLNode*top;棧頂指針);/聲明鏈?zhǔn)綏5幕静僮鱏tatusInitStack(LStack&s);StatusDestroyStack(LStack&s);StatusStackEmpty(LStacks);StatusStackLength(LStacks);StatusPush(LStack&s,ElemTypee);StatusPop(LStack&s,ElemType&a
3、mp;e);StatusGetTop(LStacks,ElemType&e);StatusStackTraverse(LStacks);(二)該源文件實現(xiàn)了頭文件聲明的函數(shù)(linkStack.cpp)#include"linkStack.h"#include<iostream>usingnamespacestd;StatusInitStack(LStack&s)操作結(jié)果:構(gòu)造一個空棧SstructLNode*p;p=(LNode*)malloc(sizeof(LNode);if(!p)cout<<"嚴(yán)重錯誤:鏈?zhǔn)綏3跏挤峙?/p>
4、頭節(jié)點失敗,程序退出exit(ERROR);)s.top=p;p->next=NULL;returnOK;)StatusDestroyStack(LStack&s)初始條件:棧s已存在操作結(jié)果:棧s被銷毀structLNode*p;p=s.top;while(p)s.top=p->next;free(p);p=s.top;)returnOK;)StatusStackEmpty(LStacks)初始條件:棧s已存在操作結(jié)果:若棧s為空棧,則返回TRUE,否則FALSEif(s.top->next=NULL)returnTRUE;returnFALSE;StatusSta
5、ckLength(LStacks)初始條件:棧s已存在操作結(jié)果:返回s的元素個數(shù),即棧的長度(intlength=0;structLNode*p;p=s.top;while(p->next)length+;p=p->next;returnlength;StatusPush(LStack&s,ElemTypee)初始條件:棧s已存在操作結(jié)果:寸1入元素e成為新的棧頂元素structLNode*p;p=(LNode*)malloc(sizeof(LNode);if(!p)exit(OVERFLOW);s.top->data=e;p->next=s.top;s.top
6、=p;returnOK;StatusPop(LStack&s,ElemType&e)初始條件:棧s已存在且非空e返回其值操作結(jié)果:刪除s的棧頂元素,并且用(structLNode*p;if(!(s.top->next)exit(UNDERFLOW);p=s.top;s.top=p->next;e=s.top->data;free(p);returnOK;StatusGetTop(LStacks,ElemType&e)初始條件:棧s已存在且非空操作結(jié)果:用e返回s的棧頂元素(if(!(s.top->next)exit(ERROR);s.top=s.
7、top->next;e=s.top->data;returnOK;StatusStackTraverse(LStacks)/從棧頂開始依次輸出if(!(s.top->next)exit(ERROR);p=s.top;while(p->next)p=p->next;cout<<p->data<<endl;returnOK;(三)該源文件為測試程序(demo.cpp)#include"linkStack.h"#include<iostream>usingnamespacestd;intmain()inte;structLStacks;InitStack(s);Push(s,4);GetTop(s,e);cout<<e<<endl;Push(s,5);Push(s,6);Push(s,7);Push(s,8);Push(s,9);GetTop(s,e);cout<<e<<endl;cout<<
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務(wù)顧問收費標(biāo)準(zhǔn)及企業(yè)內(nèi)部控制顧問協(xié)議
- 餐廳承包經(jīng)營與食品安全責(zé)任合同樣本
- 信息化系統(tǒng)采購與運維服務(wù)協(xié)議
- 國際金融衍生品出口及風(fēng)險管理合同
- 轉(zhuǎn)體橋梁稱重平衡調(diào)試技術(shù)
- 職業(yè)病培訓(xùn)大綱
- 少兒無人機課件
- 智慧生態(tài)農(nóng)業(yè)谷項目解決方案
- 非煤礦山安全生產(chǎn)知識題庫-單選題
- 濃密機培訓(xùn)課件
- 2025年湖北省中考化學(xué)試卷真題(含答案解析)
- 2025至2030中國插針機行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年江西省中考?xì)v史試卷(含答案)
- 2025年四川省宜賓市中考數(shù)學(xué)真題含答案
- 食品銷售公司食品安全管理制度
- 測量行業(yè)工作管理制度
- 2022年江西省投資集團有限公司校園招聘筆試模擬試題及答案解析
- 發(fā)證機關(guān)所在地區(qū)代碼表
- 征地補償數(shù)據(jù)庫建設(shè)技術(shù)方案
- 高級財務(wù)管理教案第八章 財務(wù)危機管理
- 北京市中小學(xué)教師崗位考核登記表(表樣)
評論
0/150
提交評論