數據結構--概述

最近開始打磨本身的基礎知識,包括java相關,數據結構等。也是爲後面考試打好基礎。今天主要是對數據結構進行一些概述,主要是對知識人總結,方便本身之後的複習。首先聲明一下,本篇以及後續的博客內容會摘自《大話設計模式》或相關書籍或博客,若是看到有重複內容,請不要噴我。本着一個原則:總結學習知識,方便本身
查閱,若能對他人有所幫助,深表榮幸!java

1.基本概念和術語

學習以前,先理解一下基本概念。數據結構能夠分爲兩部分理解,一個是數據,一個是結構。設計模式

1.1 數據

數據,是指描述客觀事物的符號,是計算機中可操做的對象,能被計算機識別並處理的符號集合。好比整型等數值類型,還包括一些字符而及聲音、圖像、視頻等非數值類型。
數據其實就是符號,可是要具有兩個前提數據結構

  • 能夠輸入到計算機中。
  • 能被計算機程序處理。

1.2 數據元素

數據元素是組成數據的、有必定意義的基本單位。就是數據的基本單位。學習

1.3 數據項

通常來講,一個數據元素能夠由若干個數據項組成。數據項也可稱爲字段、域、屬性等。
數據項是數據不可分割的最小單位。設計

1.4 數據對象

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

1.5數據結構

結構,簡單的理解就是就是關係,好比分子結構,就是說組成分子的原子之間的排列方式。嚴格來講,結構是指各個組成部分相互搭配和排列的方式。在現實生活中,不一樣數據元素之間不是獨立的,而是存在特定的關係,咱們將這些關係稱爲結構。
那麼,數據結構就是相互之間存在一種或多種特定關係的數據元素的集合。對象

2. 邏輯結構與物理結構

按照視點的不一樣,能夠將數據結構分爲邏輯結構和物理結構。blog

2.1 邏輯結構

邏輯結構,是指數據對象中數據元素之間的相互關係。邏輯結構爲四種,以下圖:
內存

  1. 集合結構
    集合結構中的數據元素除了同屬於一個集合外,它們之間沒有其餘關係。各個元素之間是平等的,共同屬性就是同屬於一個集合。
  2. 線性結構
    線性結構是數據元素之間是一對一的關係。如上圖所示。
  3. 樹形結構
    樹形結構就是數據元素之間存在一種一對多的層次關係。如上圖所示。
  4. 圖形結構
    圖形結構中的數據元素是多對多的關係。如上圖所示。

用示意圖表示數據的邏輯結構時,注意點:博客

  • 將每個數據元素看作一個結點,用圓圈表示。
  • 元素之間的邏輯關係用結點之間的連線表示,若關係是有方向的,則用帶箭頭的連線表示。

2.2 物理結構(存儲結構)

物理結構是指數據的邏輯結構在計算機中的存儲形式。數據是數據元素的集合,根據定義,實際就是如何把數據元素存儲到計算機的存儲器中。存儲器是針對內存而言的,像硬盤、軟盤、光盤等外部存儲器的數據一般經過文件結構來描述。
數據結構的存儲結構形式有兩種:順序存儲和鏈式存儲。

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

  2. 鏈式存儲結構
    鏈式存儲結構是把數據元素存放在任意的存儲單元裏,這組存儲單元能夠是連續的,也能夠不連續的。以下圖:

3. 抽象數據類型

  1. 數據類型
    數據類型是指一級性質相同的值的集合以及定義在此集合上的一些操做的總稱。
  2. 抽象數據模型
    抽象數據模型(Abstract Data Type, ADT)是指一個數學模型及定義在該模型上的一組操做。

小結

這是整理書上的一些基本概念,作個筆記。在看其餘人的博客的時候,也看到了一些熟悉的內容,相信不少人看過這本書,也作了記錄。別人的學習記錄是別人的,本身學習要整理本身的……

相關文章
相關標籤/搜索