2021銀行春招_銀行科技崗備考指導之數據結構

【貴州中公金融人】儘管銀行科技崗考查內容眾多,但萬變不離其宗,基礎的計算機專業知識少不了,當然還有其他一些科目:計算機組成原理、計算機網絡、資料庫、作業系統、程序設計語言、軟體工程、數據結構、信息新技術等。就拿數據結構來說,重點較多,比如二叉樹的構成、哈希查找效率、二叉樹的遍歷算法、多線程的棧和隊列、軟體需求、單鍊表查找算法、棧的進出順序、先進先出、線性結構、隊列、串、數據的存儲結構、棧和隊列、深度為5的滿二叉樹、後序遍歷序列是dabec,中序遍歷序列是debac、進棧序列、快速排序算法等等,今天就給大家介紹一下其中的重點內容——棧。

2021銀行春招_銀行科技崗備考指導之數據結構

一、具體內容看一看

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.棧的應用

數制轉換、括號的檢驗匹配、行編輯程序、表達式求值。

2021銀行春招_銀行科技崗備考指導之數據結構

二、實踐出真知

下面,我們就以幾道代表性題目來看一看棧的應用

例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銀行春招_銀行科技崗備考指導之數據結構