(二)算法基礎-數據結構簡介

目錄算法

  1. 什麼是數據結構?
  2. 常見的數據結構有哪些?
  3. 數據結構的邏輯結構分類有哪些?
  4. 數據的存儲結構有哪幾種?

一、什麼是數據結構?

通常來講,用計算機解決一個具體問題時,大體須要以下幾步:數組

  • 首先,要從具體問題抽象出適當的數學模型;
  • 而後,設計一個解此數學模型的算法;
  • 而後,再編寫程序;
  • 最後,進行測試、調整直至最終解決此問題。

其中尋找數學模型的實質就是分析問題,從中提取操做的對象,並找出這些操做對象之間含有的關係,而後用數學語言加以描述。面對一些簡單的場景也許只須要一個數學方程就能解決,可是面對一些複雜的場景,如須要統計圖書館書目信息、借還信息等這些非數值計算問題的數學模型,就再也不是一個簡單的數學方程了,而是像表、樹和圖之類的數據結構。
所以,簡單來講,數據結構是一門研究非數值計算的程序設計問題中計算機的操做對象(這稱之爲數據),而且這些數據之間有着某種關係(這種關係就是結構)。數據結構

二、常見的數據結構

  • 字符串
  • 數組
  • 線性表
  • 隊列

三、邏輯結構分類

  • 集合結構:一堆數據中惟一的關係就是同屬某一個集合;
  • 線性結構:結構中的數據元素之間存在一個接着一個的關係;
  • 樹形結構:結構中的數據元素之間存在一個對多個的關係;
  • 圖形結構(或網狀結構):結構中的數據元素存在多個對多個的關係;

邏輯結構圖形表示,以下: 學習

四、存儲結構(物理結構)

數據在計算機中的表示(或稱映像)稱爲物理結構,又稱爲存儲結構。在計算機中表示數據的最小單位是一個二進制位,叫作(bit)。在計算機中,咱們能夠用一個由若干位組合起來造成一個位串來表示一個數據元素(如用32位即4個字節表示一個整數元素,8位即1個字節表示一個字符)。
數據元素之間的關係在計算機中有兩種不一樣的表示方式:順序映像非順序映像,並由此得出兩種不一樣的存儲結構:順序存儲結構非順序存儲結構。順序存儲是在連續存儲空間內,元素之間藉助元素在存儲器中的相對位置來表示數據元素之間的邏輯關係(如圖4-1,一個整型數組的兩個元素11和12在內存中的位置是連續的,0010存儲的是11,0014存儲的是12)。而非順序存儲是藉助指向元素地址的指針來表示元素之間的關係(如圖4-2,一個鏈表裏的兩個元素a以及元素b,在1110存儲的是元素a,a後面存儲的是指向下一個元素b的地址的指針)。測試

總結

數據結構是咱們研究問題的基礎數據模型,既包含了問題對象的結構也包含了問題對象之間的關係。清楚的知道咱們經常使用的數據結構,能爲咱們往後思考以及解決程序問題打下堅實的理論基礎。設計

本文爲原創內容,供學習參考以及總結概括使用,若文章中有引用到涉及版權相關的圖片,請告知!
勘誤,請留言!指針

相關文章
相關標籤/搜索