【算法零基礎入門】 學習筆記一 什麼是數據結構

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

一、引言

數據結構的起源來於人們對計算機能解決哪些問題的的思考。一開始人們覺得計算機就是解決計算問題的,就如同現在的計算器。但是隨着計算機的發展,計算機能解決的問題越來越多,數據越來越複雜,怎麼管理和組織數據,及數據之間的關係,就顯得越來越重要。因而一門新的學科就誕生了,也就是我們正在討論的數據結構。

二、基本概念

2.1 數據

要討論數據結構,讓我們先來討論什麼是數據。這個問題還真不好回答,各位可以閉上眼睛,自己想想數據該怎麼定義。書本上給出的定義是這樣的:數據是描述客觀事物的符號,是計算機中可以操作的對象,是能輸入計算機被計算機識別,並輸入給計算機處理的符號集合。

這裏的數據如果
從計算機的角度來看就是0,1兩個數字組成的集合。

從數學角度來看的話包括整數,浮點數。

從編程語言角度來看的話除了整數,浮點數還包括布爾,字符串,結構,類等數據類型。

從現實角度來看的話包括聲音,圖像,視頻等。

字符是通過對數字的編碼來實現的。聲音,視頻更是通過對數字合理的結構安排及組合來實現的。

2.2 數據對象,數據元素,數據項

這三個概念也不好理解,如果你知道數據庫的一點知識,用數據庫裏面的表,記錄,字段來理解這三個概念是最簡單不過了,數據庫表就是一個數據對象,數據對象相同數據元素組成的集合;記錄就是數據元素,數據元素是組成數據的有一定意義的基本單位;字段就是數據項,數據項是組成數據元素的更小單位。

2.3 數據結構
所謂結構就是關係,人與人之間的關係有夫妻,朋友,情人等。計算機中大量的數據當然不是雜亂無章的,他們有着一定的內在關係,比如前後順序關係,位置關係等。這種數據與數據之間的關係就是數據結構,有鏈表,圖,樹等。所以數據結構就是相互之間一種或幾種特定關係的數據元素的集合。

 

 三、邏輯結構與物理結構

3.1 邏輯結構

邏輯結構:是指數據集合中元素之間的關係。是從集合角度來看元素之間的關係的。也可以用數據表之間的關係對比來理解,表之間關係有無關係,一對一,一對多,多對多,所以邏輯結構就分爲四種:

  1. 集合結構 無關係

  2. 線性結構 一對一

  3. 樹形結構 一對多

  4. 圖形結構 多對多

注意:數據的邏輯結構只有以上四種

3.2 物理結構

物理結構也叫做存儲結構,是描述數據怎麼在計算機上存儲的。這裏的存儲結構主要是指內存中的存儲,硬盤等的存儲一般是用文件結構來描述。

注意:數據的物理結構更簡單隻有以下兩種:

  1. 順序存儲結構 就是把數據元素按順序放在連續的存儲空間裏。其最典型的代表是數組。

  2. 鏈式存儲結構  就是把數據元素按順序放在任意的存儲空間裏。但是每個數據元素裏增加一個指向下一個元素的地址的指針。

 

 四、數據類型

有人說掌握一門編程語言的數據類型,就掌握了這門語言的核心。這話不無道理,數據類型最核心的作用就是定義這種數據的存儲空間的大小,以及這種數據的一些操作。
這裏說一點指針的話題,大家覺得指針是不是一種數據類型呢?如果從數據類型的定義上來看,指針也算是一種數據類型的,因爲它有大小,在一個32位機器上它的大小爲4個字節,指針本身也定義了一些操作。但是指針它本身又有類型的,我們都知道指針有整形指針,字符串指針,結構指針,類指針等。爲什麼指針又要定義其類型呢?指針的類型指的是指針所指的數據的大小,就是這個地址上後面多少字節表示的是數據。

 

 

 

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