怎么删除结构体数组中的一组数据_数据结构-栈
數(shù)據(jù)結(jié)構(gòu)-棧
1)棧的定義.
棧是只能通過(guò)訪問(wèn)它的一端來(lái)實(shí)數(shù)據(jù)存儲(chǔ)和檢索的一種線性數(shù)據(jù)結(jié)構(gòu),邏輯結(jié)構(gòu)和線性表相同。特點(diǎn)在于運(yùn)算有所限制:即主要特征是“后進(jìn)先出”(先進(jìn)后出)。
在棧中進(jìn)行插入和刪除操作的一端成為棧頂,另一端為棧底,不含數(shù)據(jù)元素的棧成為空棧。
2)棧的基本運(yùn)算(無(wú)排列順序).
#1.初始化棧InitStack(s)
創(chuàng)建一個(gè)空棧。
#2.判棧空 int SEmpty(s)
初始條件:棧s已經(jīng)存在
操作結(jié)果:若棧為空返回1,否則返回0
#3.入棧(進(jìn)棧)Push(&s,x)
初始條件:棧s已經(jīng)存在,且非空
操作結(jié)果:在棧頂插入一個(gè)元素x,棧中多了一個(gè)元素
#4.出棧 Pop(&s,&x)
初始條件:棧s存在,且非空
操作結(jié)果:將棧頂元素賦值給x,然后刪除棧頂元素,棧中少了一個(gè)元素
#5.讀棧頂元素 ReadTop(s,&e)
初始條件:棧s已經(jīng)存在,且非空
操作結(jié)果:輸出棧頂元素,但棧中元素不變
#6.顯示棧元素 ShowStack(s)
初始條件:棧s已經(jīng)存在,且非空
操作結(jié)果:顯示棧中所有元素
2)棧的順序結(jié)構(gòu)
棧的順序結(jié)構(gòu)是指用一組地址連續(xù)的存儲(chǔ)單元依次存放自棧頂?shù)綏5椎臄?shù)據(jù)元素,同時(shí)輻射棧頂指針(Top)來(lái)只是棧頂元素在棧中的位置。
1).順序棧的實(shí)現(xiàn)
#1.用一堆數(shù)組實(shí)現(xiàn)順序棧
設(shè)棧中的數(shù)據(jù)元素的類型是datatype型,用一個(gè)足夠長(zhǎng)的一維數(shù)組data來(lái)村發(fā)那個(gè)元素,數(shù)組的最大容量為MAXLEN,棧頂指針為Top,則
#define MAXLEN 10 datatype data[MAXLEN]; int top;#2.用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)順序棧
#define MAXLEN 10 typedef struct { datatype data[MAXLEN]; int top; } SeqStack;3)鏈棧
用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)愛(ài)你的棧稱為鏈棧。
鏈棧的基本算法:
#1.初始化
#2.判棧空
#3.入棧
#4.出棧
#5.顯示棧中所有元素
4).棧的基本應(yīng)用:表達(dá)式求值,括號(hào)匹配等。在計(jì)算機(jī)語(yǔ)言的實(shí)現(xiàn)以及將遞歸過(guò)程轉(zhuǎn)變?yōu)榉沁f歸過(guò)程的處理中,棧有重要的作用。
總結(jié)
以上是生活随笔為你收集整理的怎么删除结构体数组中的一组数据_数据结构-栈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数学建模传染病模型_数学建模| 时间序列
- 下一篇: printwriter 要close吗_