【貴州中公金融人】儘管銀行科技崗考查內容眾多,但萬變不離其宗,基礎的計算機專業知識少不了,當然還有其他一些科目:計算機組成原理、計算機網絡、資料庫、作業系統、程序設計語言、軟體工程、數據結構、信息新技術等。就拿數據結構來說,重點較多,比如二叉樹的構成、哈希查找效率、二叉樹的遍歷算法、多線程的棧和隊列、軟體需求、單鍊表查找算法、棧的進出順序、先進先出、線性結構、隊列、串、數據的存儲結構、棧和隊列、深度為5的滿二叉樹、後序遍歷序列是dabec,中序遍歷序列是debac、進棧序列、快速排序算法等等,今天就給大家介紹一下其中的重點內容——棧。
一、具體內容看一看
1.定義
棧是一種只能在一端進行插入或刪除操作的線性表。棧中的數據元素是線性關係。
棧頂:允許進行插入或刪除操作的一端。
棧底:不允許進行插入和刪除操作,固定不變的一端。
入棧:棧的插入操作。
出棧:棧的刪除操作。
2.特點
先進後出(FirstInLastOut,簡稱FILO)、後進先出(LastInFirstOut,簡稱LIFO)。
3.存儲結構
順序棧:使用順序存儲結構存儲棧。
鏈式棧:使用鏈式存儲結構存儲棧。
4.棧的常見操作
InitStack(&S):構造一個空棧S。
DestroyStack(&S):棧S被銷毀。
ClearStack(&S):棧S清為空棧。
StackEmpty(S):若棧S為空棧,則返回TRUE,否則FALSE。
StackLength(S):返回S的元素個數,即棧的長度。
GetTop(S,&e):用e返回S的棧頂元素。
Push(&S,e):插入元素e為新的棧頂元素。
Pop(&S,&e):刪除S的棧頂元素,並用e保存返回其值。
5.棧的應用
數制轉換、括號的檢驗匹配、行編輯程序、表達式求值。
二、實踐出真知
下面,我們就以幾道代表性題目來看一看棧的應用
例1.一個棧的入棧序列是A,B,C,D,E,則棧的不可能輸出序列是( )。
A.EDCBA B.DECBA
C.DCEAB D.ABCDE
分析思路:首先站的工作原理是棧先進後出,後進先出。A選項是abcde先入棧,然後依次出棧,正好是edcba。B選項是abcd先依次入棧,然後d出棧,e再入棧,e出棧。選項C是錯誤的,因為a先於b入棧,不可能a先出棧然後b再出棧。選項D是a入棧,然後a出棧;b再入棧,b出棧,依此類推。
例2.輸入序列為ABC,可以變為CBA時,經過的棧操作為( )。
A.push,pop,push,pop,push,pop B.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,pop D.push,pop,push,push,pop,pop
分析思路:push是入棧,pop是出棧,入棧後為A、B、C,棧的特點是後進先出,ABC依次入棧,然後依次出棧,所以出棧後變為C、B、A。故B選項正確。
棧是我們數據結構當中非常典型的一個知識點,希望此次的分享可以幫助大家理解和掌握其中的要點和考查方式!
來源:kknews2021銀行春招_銀行科技崗備考指導之數據結構