佇列可以看做是高速路口,進出口需要車輛排成一列,這就是線性結構,在車隊中的車只能在入口選擇是上高速還是原路返回,簡單定義是一種特殊的線性結構,只能在head出做處理。
我認為棧的結構很有趣,拿乙個高中數學題來說,三根柱子上套著不同大小的輪盤,要將他們按大小排在一根柱子上,這是乙個數列題,但是我們同樣可以用演算法解決,這時候柱子想相當於乙個棧。棧就像一根柱子套上不同大小,或者有編號的輪盤用來標誌他們,每次操作都要按照順序,例如要想取下最裡面的輪盤就要一次從外到裡一次去下所有輪盤。
這就是建立乙個一維線性結構,但要用一些方法將他們各個元素連線起來,我這裡有兩種方法——指標、模擬鍊錶。
語言基礎裡應該都會學,指標鏈結鍊錶的方法是建立乙個結構體,這個結構體包含兩個部分乙個用來儲存資料,乙個用來指向下乙個結構體。我們可以想象一下鏈條,每根鏈條的每個單元都是乙個固體然後又存在乙個與後面相連的結構。指標的優勢在於,一對數列中要按順序插入乙個數,這樣只需將兩個指標改變,不需要移動很多的資料。
它的方式是兩個一維陣列,表示乙個一維結構,第乙個date陣列存資料,第二個right陣列鏈結資料這種方式很好理解,和指標的作用相似。
棧佇列鍊錶演算法總結
1.佇列 struct queue 2.棧棧的基本操作 定義棧 stacks 入棧 定義棧元素 s.push i 出棧 刪除棧元素 s.pop 返回棧頂元素的值 s.top 判斷棧是否為空 s.empty 值為0說明不空 值為1說明棧為空 棧的用法例項 include include using n...
棧 佇列 鍊錶
includestruct queue int main while q.head includeint main maxvalue temp maxvalue temp maxvalue temp 0 for int j 1 j len j maxvalue temp maxvalue temp ...
鍊錶,棧和佇列
1.建立鍊錶 package com.zzw.鍊錶 非常基本的單項鍊表 author john public class node 新增乙個結點 node end new node d node n this while n.next null n.next end 刪除單向鍊錶中的結點 node ...