1. 程式人生 > 其它 >資料演算法之資料結構

資料演算法之資料結構


package com.Lucky.DataStructure; /* 資料結構: 邏輯結構+儲存結構+儲存結構的運算 邏輯結構分為:線性結構 1:1 樹狀結構 1:N 網狀結構 N:N 儲存結構:順序/鏈式/索引/雜湊 */ public class dataDemo { public static void main(String[] args) { /** * 順序結構:1.在記憶體中分配連續的空間,每個空間的大小相同,邏輯順序和物理順序一致。 * 優點:按照索引查詢效率高,查詢第N個元素的地址=陣列首地址+每個空間的大小*N * 卻點:新增,刪除需要移動大量的資料,效率低 */ /** * 鏈式結構:1.在記憶體中不分配連續的空間,每個空間的大小相同,邏輯順序和物理順序不一致。 * 卻點 :按照索引查詢效率低,只能逐個查詢,無法算出地址 * 優點:新增,刪除需要不移動大量的資料,效率高,只要改變前後節點的指標【地址】就可以了 */ /* 拓展: 順序結構or鏈式結構那個更節省空間????? 解: 1.從空間上講,順序結構更加節省空間,因為順序結構只需要儲存資料,不需要儲存地址, 而鏈式結構需要儲存資料,也需要儲存地址, 2.從實際運用上講,鏈式結構更加節省空間,因為順序結構會事先分配一定空間, 如果儲存的資料小於分配的空間,會造成空間的浪費,而鏈式結構不會,鏈式結構是有資料才會有節點 按照內容查詢,順序結構or鏈式結構那個效率高????? 解:那種結構效率都不高,都要逐個比較查詢 */ /** * 棧與佇列 * 棧:先進後出 * 佇列:先進先出 */ } }

  圖解:

連結串列:

棧與佇列:

陣列:

樹:

堆: