《大話數據結構》 第一章 數據結構緒論

這一段沒什麼實際的意義,可以直接跳過。簡單介紹一下背景。沒有相關的技術背景,只是因爲工作是程序員,深知這方面知識的重要性,所以一直想要學習這方面的知識。最近這段時間也一直在找這方面的書籍和視頻,也看了一段時間的視頻,今天偶然得到《大化設計模式》這本書,所以想說,從這本書開始,在博客中記錄我的學習過程(不定時更),一方面爲了鞏固看過的內容,一方面方便以後回顧,不需要再去拿起書本從頭到尾的去翻看(我看書的習慣,一些解釋性的文字第一遍看過後,第二次再看就會選擇性的跳躍,珍惜碎片化的時間),另一方面也想分享給更多的有相同興趣的需求的朋友一起學習。

後面還有打算繼續看算法以及設計模式等方面的書籍,要是有好的書籍建議可以評論區留言,我不定時寵幸一下。目前算法相關的書籍還在尋找,設計模式的話暫定爲《大話設計模式》。

一、基本概念和術語

1.1 數據

數據:是描述客觀事物的符號,是計算機中可以操作的對象,是能被計算機識別,並輸入給計算機處理的符號集.數據不僅僅包括整型、實型等數值類型,還包括字符及聲音、圖像、視頻等非數值類型。這些符號必須具備兩個前提:

  1. 可以輸入到計算機中。

  2. 能被計算機程序處理。

1.2 數據元素

數據元素:是組成數據的、有一定意義的基本單位,在計算機中通常作爲整體處理,也被稱爲記錄。

比如:在人類中,人是數據元素。畜類中,牛、馬、羊等動物是禽類的數據元素。

1.3 數據項

數據項:一個數據元素可以由若干個數據項組成。

數據項是數據不可分割的最小單位。(這樣定義有助於我們更好的解決問題)

1.4 數據對象

數據對象:是性質相同的數據元素的集合,是數據的子集

實際應用中,處理的數據元素通常具有相同性質,在不產生混淆的情況下,我們都將數據對象簡稱爲數據。

1.5 數據結構

結構:是指各個組成部分相互搭配和排列的方式。現實世界中,不同數據元素之間不是獨立的,而是存在特定的關係,我們將這些關係稱爲結構。

數據結構:是相互之間存在一種或多種特定關係的數據元素的集合。

數據元素之間存在一種或多種特定關係,也就是數據的組織形式。

二、邏輯結構與物理結構

    按照視點的不同,我們把數據結構分爲邏輯結構和物理結構。

2.1 邏輯結構

邏輯結構:是指數據對象中數據元素之間的相互關係。其實這也是我們今後最需要關注的問題。邏輯結構分爲一下四種:

  1. 集合結構:集合結構中的數據元素處理同屬於一個集合外,它們之間沒有其他關係。

  2. 線性結構:線性結構的數據之間是一對一的關係。

  3. 樹形結構:樹形結構中的數據元素之間存在一種一對多的層次關係。

  4. 圖形結構:圖形結構的數據元素是多對多的關係。

2.2 物理結構

      有些書中也稱其爲存儲結構,實際上是一回事。

物理結構:是指數據的邏輯結構在計算機中的存儲形式。

數據元素的存儲結構形式有兩種:順序存儲和鏈式存儲。

  1. 順序存儲結構

    • 順序存儲結構:是把數據元素放在地址連續的存儲單元裏,其數據間的邏輯關係和物理關係是一致的。

  2. 鏈式存儲結構

    • 鏈式存儲結構:是把數據元素存放在任意的存儲單元裏,這組存儲單元可以是連續的,也可以是不連續的。

三、抽象數據類型

3.1數據類型

數據類型:是指一組性質相同的值的集合及定義在刺激和尚的一些操作的總稱。

在C語言中,按照取值的不同,數據類型可以分爲兩類:

  1. 原子類型:是不可以再分解的基本類型,包括整型、實型、字符型等。

  2. 結構類型:由若干個類型組合而成,是可以再分解的。例如,整型數組是由若干整型數據組成的。

抽象是指抽取出食物具有的普遍性的本質。它是抽出問題的特徵而忽略非本質的細節,是對具體事務的一個概括。抽象是一種思考問題的方式,它隱藏了繁雜的細節,只保留實現目標所必需的信息。

3.2 抽象數據類型

抽象數據類型:是指一個數學模型及定義在該模型上的一組操作。抽象數據類型定義取決於他的一組邏輯特性,而與其在計算機內部如何表示和實現無關。

抽象的意義在於:數據類型的數學抽象特性。

抽象數據類型體現了程序設計中問題分解、抽象和信息隱藏的特性。

本文屬於原創,如需轉載,請告知一聲,謝謝(算是對我的肯定,得讓我知道呀~~)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章