資料結構課程的概論,從以下這條線索進行闡述:問題 -> 數學化(數學建模) -> 選擇資料結構datastructure -> 演算法algorithm 及 設計步驟 -> 驗證正確性 -> efficient效率檢驗 -> 程式實現
資料結構描述了資料物件之間的結構關係,是相互之間具有一種或者多種特定關係的資料集合。
資料結構,是抽象資料型別adt的物理實現。
我們需要解決大量的非數值計算問題,由於問題求解的需要,我們經常要自定義一些資料型別和它的一些基礎運算,來便於我們解決這些問題。因此我們有了 抽象資料型別(自定義的資料型別) 與 資料結構(抽象資料型別的物理實現)。
(1)資料的邏輯結構:主要分為 線性結構 和 非線性結構。線性結構有 線性表(陣列),佇列queue,棧stack等等;非線性結構有 樹tree,圖map,集合set等等。
(2)資料的物理結構:由資料的邏輯結構決定,在記憶體中的儲存方式,有 連續的 和 不連續的 兩種。連續:在記憶體中按 連續的相對位置 存放(陣列);不連續:在記憶體中按 無序的相對位置 存放,由指標來確定位置。
簡單的來說,為了解決實際問題,我們自定義了一些擁有相同屬性的資料,並把它們抽象成乙個資料型別(非常像物件導向語言中 類的定義),就是抽象資料型別cdt了。為了物理實現adt,我們需要考慮三個方向的內容:1)資料的邏輯結構 2)資料的物理結構 3)資料的運算。引入了資料型別的物理實現:資料結構。
考慮1 相同資料型別的資料 需要具有哪些屬性,即它的定義是什麼。定義分為1)資料的特徵 和 2)運算。考慮2在某種儲存狀態下,運算如何實現。
模擬於 c++等物件導向語言中的 class 需要考慮的問題:
考慮1 對應於 資料結構中的邏輯結構。考慮2 對應於 資料結構中的物理結構和運算。
資料是按照 資料結構 分類的。同一類資料 的全體 稱為資料型別。資料結構,是抽象資料型別的物理實現。它反映了 同一種資料型別所具有的屬性 和 方法。
由於資料型別是按照資料結構劃分的,因此,資料結構 和 資料型別 是緊密相連的,是一一對應的。
確定完資料結構之後,我們需要選用策略來解決實際的問題。我們需要設計演算法 來實現資料元素的邏輯關係結構,然後根據邏輯結構來選擇物理儲存方式。
資料結構與演算法開篇 00
1.有窮性 乙個演算法的操作步驟是有限的,不能是無限的 2.確定性 演算法中的每乙個步驟都要確定的詞,不能含糊不清 3.輸入 演算法具有0個或多個輸入 4.輸出 演算法至少有1個或多個輸出 5.可行性 演算法的每一步都是可行的,也就是說每一步都能夠執行有限的次數完成1.正確性 演算法的執行結果應當滿...
演算法與資料結構概論篇
1.將兩公升序鍊錶合併時,最壞情況時需要比較的次數為長鍊錶的長度。2.資料結構研究的內容是涉及資料組織,資料運算的實現。3.計算機演算法是指解決問題的步驟序列,它必須具備可執行性,確定性和又窮性。4.演算法原地工作的含義是指所需的輔助空間為常量。5.同乙個演算法,實現語言的級別越高,執行效率越低。6...
資料結構與演算法之美 開篇
資料結構與演算法,是計算機的核心課程之一,是程式設計師武功體系的內功,想成為武林高手必須內功過硬,作為乙個非科班碼農,面試時因為內功不強而碰壁數次,使我真實的體驗到學好資料結構與演算法的重要性,為了不在這個方面繼續碰壁,也為了能在軟體開發工程師的道路上走的更遠更快,我決心集中精力學習突破這道關口 以...