




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)組和鏈表是兩種基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),也是構(gòu)成很多復(fù)雜數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。本程序利用數(shù)組和鏈表實(shí)現(xiàn)堆棧。#ifndef_STACK_H#define_STACK_H#ifndefBOOL#defineBOOLint#endiftypedefcharItem;struct_Stack;typedefstruct_StackStack;typedefStack*pStack;pStackStack_Init(intnMax);voidStack_Destroy(pStackpSt);voidStack_Push(pStackpSt,Itemelem);ItemStack_Pop(pStackpSt);intStack_Size(pStackpSt);BOOLStack_IsEmpty(pStackpSt);BOOLStack_IsFull(pStackpSt);#endif#include<stdio.h>#include<stdlib.h>#include〃STACK.h〃staticError(char*msg)(printf(〃Error:%s\n〃,msg);}struct_Stack(Item*elem;inttop;intnMax;};pStackStack_Init(intnMax)(pStackpSt二malloc(sizeof(*pSt));pSt->elem=malloc(nMax*sizeof(*pSt->elem));pSt->top=-1;pSt->nMax=nMax-1;returnpSt;}voidStack_Destroy(pStackpSt)(free(pSt->elem);pSt->elem=NULL;free(pSt);pSt=NULL;}voidStack_Push(pStackpSt,Itemelem)(if(Stack_IsFull(pSt))(Error("StackIsFull");exit(-1);}pSt->elem[++pSt->top]=elem;}ItemStack_Pop(pStackpSt)(if(Stack_IsEmpty(pSt))(Error("StackIsEmpty");exit(-1);}returnpSt->elem[pSt->top--];}intStack_Size(pStackpStk)(returnpStk->top+1;}BOOLStack_IsEmpty(pStackpSt)(returnpSt->top==-1;}BOOLStack_IsFull(pStackpSt)(returnpSt->top==pSt->nMax;}typedefstruct_StackElem(Itemelem;struct_StackElem*next;}StackElem;typedefStackElem*link;typedefstruct_Stack(linkhead;intnMax;}Stack;pStackStack_Init(intnMax)(pStackpStk二malloc(sizeof(*pStk));pStk->head=NULL;pStk->nMax=nMax;returnpStk;}voidStack_Destroy(pStackpStk)(while(!Stack_IsEmpty(pStk))(Stack_Pop(pStk);}free(pStk);}voidStack_Push(pStackpStk,Itemelem)(linkln;if(Stack_IsFull(pStk))(Error("StackIsFull");exit(-1);}ln=malloc(sizeof(*ln));ln->elem=elem;ln->next=pStk->head;pStk->head=ln;}ItemStack_Pop(pStackpStk)(linkIn;Itemelem;if(Stack_IsEmpty(pStk))(Error("StackIsEmpty");exit(-1);}ln=pStk->head;elem=ln->elem;pStk->head=pStk->head->next;free(ln);returnelem;}intStack_Size(pStackpStk)(intcnt;linkln;for(cnt=0,ln=pStk->head;ln!=NULL;ln=ln->next,cnt++);returncnt;}BOOLStack_IsEmpty(pStackpStk)(returnpStk->head==NULL;}BOOLStack_IsFull(pStackpStk)(returnStack_Size(pStk)==pStk->nMax;}#include<stdio.h>#include<string.h>#include〃STACK.h〃intmain()(pStackpStk=Stack_Init(20);chari='z';while(!Stack_IsFull(pStk))(Stack_Push(pStk,i--);}printf(〃Stack
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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è)單位招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽池州市建筑活動(dòng)綜合技術(shù)服務(wù)中心招聘2人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽合肥廬陽(yáng)區(qū)事業(yè)單位考試項(xiàng)目易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市寧海縣事業(yè)單位招考及易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024西安澤達(dá)航空制造有限責(zé)任公司招聘(23人)筆試參考題庫(kù)附帶答案詳解
- 2025年手持式應(yīng)變儀項(xiàng)目可行性研究報(bào)告
- 2025年彎形拱坑圓壓圓壓痕線項(xiàng)目可行性研究報(bào)告
- 2025年大鑼項(xiàng)目可行性研究報(bào)告
- 北京市第四中學(xué)高中地理人口數(shù)量的變動(dòng)學(xué)案含解析新人教版
- 江蘇專用2025版高考物理一輪復(fù)習(xí)第2章相互作用第3節(jié)共點(diǎn)力的平衡教案
- 第八章運(yùn)動(dòng)和力單元試卷 (含答案) 2024-2025學(xué)年人教版物理八年級(jí)下
- 2025年中央一號(hào)文件高頻重點(diǎn)考試題庫(kù)150題(含答案解析)
- 風(fēng)電項(xiàng)目電網(wǎng)接入系統(tǒng)可行性研究報(bào)告編制服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 2024人教版新教材初中地理七年級(jí)下冊(cè)內(nèi)容解讀課件(深度)
- 2025年遼寧醫(yī)藥職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 上海市幼兒園幼小銜接活動(dòng)指導(dǎo)意見(修訂稿)
- 《十萬個(gè)為什么》整本書閱讀-課件-四年級(jí)下冊(cè)語文(統(tǒng)編版)
- 法社會(huì)學(xué)教程(第三版)教學(xué)
- TB-10303-2020 鐵路橋涵工程施工安全技術(shù)規(guī)程
- 走近湖湘紅色人物智慧樹知到答案2024年湖南工商大學(xué)
- (高清版)DZT 0208-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 金屬砂礦類
評(píng)論
0/150
提交評(píng)論