想要學好一門課,首先明白它對於計算機的意義,以及我們能夠使用它來做什麼是極其重要的。別著急,看完本文,你就會清楚資料結構的意義。本章目錄:1.資料結構的基本概念
2.演算法和演算法評價
本章內容:
資料結構研究資料的邏輯結構、物理結構和它們之間的關係,並對這種結構定義相應的運算。資料是什麼? 邏輯結構、物理結構又是什麼? 相應的運算呢? 我們先講資料。
我們來構建乙個模型:如描述乙個人的基本屬性。每乙個人都會有姓名、性別、年齡
struct human
;
現在我們想把乙個班的所有同學儲存進計算機中。
首先,把班裡所有同學當作乙個集合,這裡的所有同學就是資料,每乙個同學被封裝成乙個資料元素,每乙個同學各自的每一項屬性(姓名、性別、年齡)則為資料項。
資料:描述客觀事物的符號,計算機可操作的物件。能輸入計算機並處理的符號的集合。此時,資料你已經大概明白了。結構又從何而來呢?資料元素:組成資料的,資料結構中的基本單位,計算機做整體處理。
資料項:資料元素的組成部分。
結構分為邏輯結構和物理結構
邏輯結構:資料元素間相互關係,分為線性結構和非線性結構。
線性結構:
1.線型結構 (讓所有人排成一隊,乙個人只能聯絡乙個人)
非線性結構:
1.集合 (所有人自由活動,相互無聯絡)
2.樹形結構 (乙個人和多個人取得聯絡)
3.圖形結構 (多個人和多個人取得聯絡)
1.集合:資料元素除同屬於乙個集合外,沒有其他關係物理結構:是指資料在計算機中的實際儲存形式,分為順序儲存和鏈式儲存。2.線性結構:資料元素之間為一對一的關係
3.樹形結構:資料元素之間為一對多的關係
4.圖形結構:資料元素之間為多對多的關係
1.順序儲存:每乙個同學都坐在連續的座位上。
2.鏈式儲存:每乙個同學各自為座,但手裡拿著要去聯絡的人的座位號。
設計一種的資料結構,往往先設計其邏輯結構,再通過特定的物理結構實現相應的邏輯結構,並對其設計運算操作。
例如老師要找到班裡身高為178cm的同學。乙個人乙個人地找太麻煩了。怎樣通過合適的計算方法去算出這個問題的結果即為演算法。
演算法是解決問題步驟的有限集合,通常用某一種計算機語言進行偽碼描述。 演算法優劣的衡量指標為時間複雜度和空間複雜度。老師可以選擇樹形結構中的二叉搜尋樹(邏輯結構),用鍊錶(物理結構)的方式實現,再進行廣度優先搜尋進行查詢,即可以o(log2n)的時間複雜度解決這個問題。演算法的五大特徵:輸入、輸出、有窮性、確定性、可行性。
輸入:零個或多個輸入。
輸出:乙個或多個輸出。
有窮性:有限步驟後在可接受時間內完成。
確定性:每個步驟都有確定含義,無二義性。
可行性:每一步都是可行的。
演算法設計要求:正確性、可讀性、健壯性、時間效率高和儲存低。
正確性:有輸入輸出,無二義性,有正確答案。
可讀性:方便閱讀。
健壯性:輸入不合法能處理
時間效率高和儲存低:時間空間複雜度越低越好。
學習資料結構,意味著你可以用更高的效率、更輕便的方法解決問題。
不要慌。這些東西後面會展開講,你只需要明白本章提到的名詞含義以及其之間的關係。並且體會資料結構的必要性即可。
資料結構第一章緒論
緒論主要是對計算機資料結構一書有大致了解,系統的講解資料結構在程式結構的應用,資料結構的相關概念,演算法在程式中的應用,從而從巨集觀上了解資料結構,更有利於以後學習。1 資料結構在程式中的應用 其實乙個公式就可以了解程式和演算法還有資料,即資料結構 演算法 程式,由公式可知資料結構是程式的一部分。2...
資料結構 第一章 緒論
用計算機求解任何問題都離不開程式設計,程式設計的實質是資料表示和資料處理。一,資料結構基本概念 1.資料是資訊的載體,是電腦程式處理的原料。可以將資料分為兩大類 一類是整數實數等數值資料,一類是文字,影象聲音,圖形等非數值資料。資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。構...
資料結構 第一章 緒論
程式設計的實質是資料表示和資料處理。資料要能被計算機處理,首先必須能夠儲存在計算機的記憶體中,這項任務稱為資料表示,其核心是資料結構 乙個實際問題的求解必須滿足各項處理要求,這項任務稱為資料處理,其核心是演算法。資料結構課程主要是討論資料表示和資料處理的基本方法。1.1 1.2 1 資料的邏輯結構 ...