我眼中的棧

2021-10-10 23:47:07 字數 1013 閱讀 7301

鏈式棧棧的應用舉例

就像口袋裝東西一樣,後進先出,先進後出

1、用連續的空間儲存棧中的結點,即陣列

2、進棧和出棧總是在棧頂一端進行,不會引起類似順序表中的大量資料的移動。常用陣列的後端表示棧頂

3、用整形變數top存放棧頂元素的位置(下標),top常被稱為棧頂指標;初始時top=-1,表示棧為空;資料元素進棧top加1,然後將資料寫入top所指向的單元;退棧時top減1

1、除了進棧和擴大棧空間操作以外,所有運算實現的時間複雜度都是o(1)。

2、進棧運算在最壞情況下的時間複雜度是o(n)

1、棧的操作都是在棧頂進行的,因此不需要雙鏈表,用單鏈表就足夠了,而且不需要頭結點

2、對棧來講,只需要考慮棧頂元素的插入刪除。從棧的基本運算的實現方便性考慮,可將單鏈表的頭指標指向棧頂

3、鏈棧由棧頂指標top唯一確定。因為棧的主要操作是在棧頂進行插入與刪除,所以鏈棧通常不帶頭結點,top指標直接指向棧頂元素,top==null時為空棧

1、鏈棧的清空和求長度操作需要遍歷鏈棧中所有元素,因此,時間複雜度是o(n)

2、鏈棧的入棧、出棧、取棧頂元素、判空等都是在棧頂的操作,與棧中的元素個數無關,這些運算的時間複雜度均為o(1)

時間效率

大部分操作只需常數時間,所以難分伯仲

空間效率

順序棧是乙個固定長度,而鏈式棧長度可變,增加了結構體開銷

結論順序棧用得比較多,儲存開銷低,而且讀取棧中元素的時間複雜度是o(1),而在鏈棧中讀取第n個元素時需要沿著指標查詢,時間複雜度o(n)

待續…

我,眼中的詩歌

我,眼中的詩歌 給我一杯茶,乙個幽靜的地方,我好看些詩歌。寫前面 詩歌是一種態度。詩歌是燕子低低地飛過屋簷。詩歌是古代西方 盛行的決鬥。詩歌是人類本身一直都存在的 極為樸素的一種本能。詩歌和性別無關 和身材無關,和你曾看過多少書也沒有直接的 聯絡,造物主將嘴巴賦予人類的同時 也賦予了人類詩歌。詩歌是...

我眼中的委託

首先委託是乙個型別,和int string一樣,我們日常說的委託其實是委託型別的變數,委託的作用就是把方法當成引數來傳遞,將方法賦值給委託型別的變數,然後由這個變數去呼叫執行方法。換個方式,委託沒有具體實現體,因為委託就是叫別人去辦事,自己當然不需要實現了,但是委託別人必須要清楚自己想辦什麼事,這個...

我眼中的Spring MVC

spring mvc 是應用於web應用程式 mvc架構的 c 首先說一下spring mvc框架文件中的一句話 對擴充套件開放 對修改閉合 那麼特點就來了 高擴充套件性 這是它最大的特點還有 友好的設計的結構,思想,引數繫結,允許其他mvc的實現等等 總的來就是簡單易用 在這裡只是簡單介紹一下有哪...