棧
棧的概念及結(jié)構(gòu)
棧:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行數(shù)據(jù)插入和刪除操作的一端
稱為棧頂,另一端稱為棧底。棧中的數(shù)據(jù)元素遵守后進先出LIFO(LastInFirstOut)的原則。
壓棧:棧的插入操作叫做進棧/壓棧/入棧,入數(shù)據(jù)在棧頂。
出棧:棧的刪除操作叫做出棧。出數(shù)據(jù)也在棧頂。
順序棧的聲明:
0、順序棧的聲明
棧的實現(xiàn)
棧的實現(xiàn)一般可以使用數(shù)組或者鏈表實現(xiàn),相對而言數(shù)組的結(jié)構(gòu)實現(xiàn)更優(yōu)一些。因為數(shù)組在尾上插入數(shù)據(jù)的
代價比較小。
順序棧的基本操作:
1、InitStack(&S)(初始化棧)
2、DestroyStack(&S)(銷毀棧)
3、ClearStack(&S)(清空棧)
4、StackEmpty(S)(判斷棧是否為空)
5、StackLength(S)(返回棧的長度)
6、GetTop(S,&e)(返回棧的棧頂元素)
7、Push(&S,e)(將元素e壓入棧)
8、Pop(&S,&e)(棧頂元素出棧)
9、StackTraverse(S,Status(*visit)())(遍歷棧)
順序棧的應(yīng)用:
10、CharMatch(檢查符號{【()】}是否匹配)