之前華為來交大宣講的時候,曾參加了一次現場交流,當時面試官給我出了乙個三維資料儲存的問題,然後變著法的問如果要進行資料的怎樣怎樣變動需要使用什麼方式來儲存,由於當時對各種資料結構的儲存方式和特點掌握得不好沒能很順暢的回答,在這對各種資料結構的儲存方式做個簡單總結。
鍊錶儲存資料的個數和空間均不需要提前指定,當需要儲存資料時分配一塊記憶體並將這塊記憶體插入鍊錶中
鍊錶中總有乙個節點指向null
鍊錶操作的時間複雜度:
鍊錶常見分類:
資料結構中的堆和棧與作業系統中的堆和棧是不同的概念
作業系統中記憶體分類:全域性區,區域性變數區,常量區,堆區,棧區,程式**區等
(3.11) 作業系統中的堆:
[1] 由程式設計師分配釋放,效率較棧低但是可分配空間大而且操作靈活(3.12) 資料結構中的堆,分配方式類似於鍊錶
[3] 存放在二級快取
[1] 堆是樹形資料結構,每個節點都有乙個值。有二叉樹和k叉樹堆(3.21) 作業系統中的棧[2] 堆的特點:分為大頂堆和小頂堆。根節點的兩個子樹也是堆。資料操作比較隨意
[3]順序儲存或非順序儲存,應用場景包括堆排序、優先佇列
[1] 棧由系統自動分配,程式設計師無法控制。速度快但可支配空間小(3.22)資料結構中的棧,操作方式類似於資料結構中的棧
[3] 存放在一級快取
[1] 棧是一種先進後出的資料結構(lifo),可以用陣列或者鍊錶來實現[2] 棧有順序棧和鏈棧兩種儲存結構,所以順序儲存或者非順序儲存,即順序儲存和鏈式儲存
[3] 資料操作:只能在棧頂進行插入和刪除操作
acknowledgements:
2017.08.25
資料結構中陣列 鍊錶 堆疊和佇列
資料結構 是指相互之間存在一種或多種特定關係的資料元素的集合。聽起來是不是很抽象,簡單理解 資料結構就是描述物件間邏輯關係的學科。比如 佇列就是一種先進先出的邏輯結構,棧是一種先進後出的邏輯結構,家譜是一種樹形的邏輯結構!初學資料結構的時候很不理解為什麼有 棧 這個東西 佇列很容易理解 無論購物就餐...
資料結構與演算法之陣列 鍊錶 佇列 棧
一 陣列 陣列是乙個儲存元素的線性集合,它使用一塊連續的記憶體空間儲存資料,儲存的資料的個數在分配記憶體的時候就是確定的。訪問陣列中第 n 個元素的時間花費是o 1 在陣列中查詢乙個指定的元素則是o n 向陣列中插入或刪除元素時,最好的情況是在陣列的末尾進行操作,時間複雜度是o 1 最壞情況是插入或...
資料結構 堆疊,鍊錶
一 資料的邏輯結構 指反映資料元素之間的邏輯關係的資料結構,其中的邏輯關係是指資料元素之間的前後件關係,而與他們在計算機中的儲存位置無關。邏輯結構包括 集合資料結構中的元素之間除了 同屬乙個集合 的相互關係外,別無其他關係 2.線性結構 資料結構中的元素存在一對一的相互關係 3.樹形結構 資料結構中...