什麼是資料結構
將生活中大量的複雜的問題轉化成特定的資料型別和特定的儲存結構儲存在主儲存器(記憶體)中。為了完成某個目標(排序,求和等)而執行特定的操作。
針對同一個目標,如果用不同的資料型別和儲存結構。就需要採用不同的演算法進行計算。
如:從一個線性表中找出最大值。使用陣列與使用連結串列它們對應的查詢程式碼肯定是不一樣的。
站在資料結構的角度看平時的一些基本概念
什麼叫堆記憶體,棧記憶體
棧記憶體:系統以壓棧出棧(先進先出)的方式分配的記憶體叫棧記憶體
堆記憶體:系統以堆排序的方式分配的記憶體叫堆記憶體
根本原因是分配記憶體的演算法不同
什麼叫佇列
是為例解決時間先後順序的一種資料結構,凡是涉及到執行緒先後順序問題的都有用到佇列
語法樹是什麼
編譯原理中有個語法樹這個概念,它是一種樹結構。
資料庫是什麼
資料庫是資料結構的一個狹隘版,它研究的是資料的儲存問題。也是每條資料的資料結構和多條資料之間的關係。
程式是什麼
程式 = 資料的儲存 + 資料的操作 + 可以被計算機執行的語言。
指標
cpu與記憶體 用三根匯流排連線。它們分別是:
地址線:管理著當前CPU可以訪問的記憶體地址
控制線:管理著當前CPU是:可讀,可寫。
資料線:cup處理後的資料
結構體
在定義一個結構體型別變數時,系統會自動為變數分配好記憶體空間,它是一個靜態變數。
一般在方法間傳遞結構體型別變數時,是傳遞指標,這樣避免消耗記憶體
資料結構在邏輯上分為線性,非線性
線性結構:陣列,連結串列。
陣列和連結串列是線性資料的一種儲存方式
棧和佇列是線性結構的一種表現形式。
什麼是樹
樹有節點和邊(指標)組成。
每一個節點都有一個父節點,但它可以有多個子節點。
根節點是個例外,它沒有父節點
二叉樹研究的問題是什麼
是如何將非線性資料儲存到線性儲存空間內
平時儲存的二叉樹是完全二叉樹,通過先,中,後序原則將完全二叉樹轉換成線性資料儲存到線性儲存器中。
完全二叉樹的儲存容器分為:順序儲存,鏈式儲存。