資料結構和演算法學習筆記 棧

2021-10-04 23:43:30 字數 602 閱讀 7560

引入問題:如何實現瀏覽器的前進後退功能?

如何理解棧?

後進者先出,先進者後出,這個就是典型的「棧」結構

當某個資料集合只設計在一端插入和刪除資料,並且滿足後進先出的特性,我們就應該首選「棧」這種資料結構

如何實現乙個棧?

用 陣列實現的叫順序棧

用鍊錶實現的鏈式棧

// 基於陣列實現的順序棧

public

class

arraystack

// 入棧操作

public

boolean

push

(string item)

// 出棧操作

public string pop()

}

線性棧和鏈式棧的空間複雜度是o(1).時間複雜度是o(1)

支援動態擴容的順序棧

均攤時間複雜度一半都等於最好情況時間複雜度。

棧在函式呼叫中的應用

方法棧,棧溢位的原因?

棧在表示式求值的應用

課後思考

1.為什麼函式呼叫要用棧儲存臨時變數呢?

2.jvm裡面的堆疊跟我們說的棧是一回事麼?

資料結構和演算法學習 棧

棧是一種重要的線性結構,可以說是線性表的一種具體形式 官方定義 棧是乙個後進先出的線性表,它要求只在表尾進行刪除和插入操作 棧是一種特殊的線性表 順序表 鍊錶 操作上有一些特殊要求 1.棧的元素必須 後進先出 2.棧的操作只能在這個線性表的表尾進行。注 對於棧來說,表尾稱為棧的棧頂 top 相應的表...

資料結構和演算法學習筆記

資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科。程式設計 資料結構 演算法 簡單來說資料結構就是關係,元素相互之間存在的一種或多種特定關係的集合。1.1 邏輯結構和物理結構 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條...

資料結構與演算法學習筆記

演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...