早期人們用計算機解決問題時,通常將實際問題抽象出一個具體的資料模型,然后以此來設計出解決此資料模型的演算法,再撰寫程式,成為一個完整的軟體,
資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關系和操作等相關問題的學科,
程式設計=資料結構+演算法
到底什么是資料結構呢,以下是我結合資料的理解(若有錯誤希望能夠指出),
資料結構有“資料”也有“結構”,那我們先談一下資料,
資料是什么呢?先引出資料的定義:
資料:是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,并輸入給計算機處理的符號的集合,
通俗來說就是整型、實型等數值型別,同樣包括字符、聲音、圖片、視頻等非數值型別,
我們所說的資料,實際上是符號,這些符號需要具備兩個前提:
1. 可以輸入到計算機中;
2. 可以被計算機的程式處理;
整形實型的資料,我們直接可以通過數值來處理,而字符型資料,需要進行非數值的處理;聲音、圖片視頻等則需轉換成字符資料處理,
了解了資料,我們再來說一下資料的組成,這里要引出資料元素的定義,
資料元素:是組成資料的、具有一定意義的基本單位,在計算機中通常作為整體處理,也被成為記錄,
該如何理解呢?舉個例子,人的一個整體中的資料元素是什么?就是人;有男人,有女人,有老人,有小孩,各種各樣的人,但是他們歸根結底都是人,就是人類中的資料元素,
如果把資料元素細分又是什么呢?這就引出了資料項;
資料項:一個資料元素可以由若干個資料項組成,
還是剛才的例子,一個人是人類中的資料元素,那么這個人的鼻子眼睛嘴巴耳朵眉毛手腳就是他的資料項,同樣可以是這個人的身高體重習慣愛好等資料項,具體的資料項需要由你做的系統來決定,
知道了資料元素,那性質相同的資料元素又是什么呢,這就是資料物件,
資料物件:是性質相同的資料元素的集合,是資料的子集,
剛才人的例子,人都有姓名、性別、身高、體重等相同的資料項,這就是性質相同;
通常處理的資料元素都具有相同的性質,而資料物件又是資料的子集,為了不混淆,我們把資料物件簡稱為資料,
資料就是這些,總結一下:
相同型別的資料項組成了資料元素,各種性質相同的資料元素共同組成了資料物件也就是資料,
說完了資料,接下來就是結構了;
結構,通俗的來說就是關系,由于資料元素存在不同,通過特定搭配和排列就可以將他們聯系起來,這就是結構,
知道了結構,說了這么多,那么資料結構到底是什么呢?
資料結構:資料元素之間存在的一種或者多種特定關系的集合,
這個定義已經很清楚了,舉個例子就是將圖書館的不同的書轉換為一些字符資料存入電腦中,然后將它們進行組合聯系,對這些資料物件進行操作,
資料結構可以分為兩種,邏輯結構和物理結構(存盤結構);
邏輯結構
是資料物件中資料元素之間的相互關系;分為集合結構,線性結構,樹形結構,圖形結構;
集合結構:集合結構中資料元素除了同屬于同一個集合外,之間沒有任何關系,
集合結構中元素都是平等的,屬于同一個集合;
線性結構:線性結構中的元素是一對一的關系;
樹形結構:樹形結構中的資料之間存在一種一對多的層次關系,
圖形結構:圖形結構的資料元素是多對多的關系;
物理結構(存盤結構)
指的是資料的邏輯結構在計算機中的存盤形式,
物理結構反映的是資料元素之間的邏輯關系,
物理結構分為兩種:順序存盤結構和鏈式存盤結構,
順序存盤結構:將資料元素存放到地址連續的存盤單元中,資料間的邏輯關系和物理關系是一致的,
最典型的例子就是陣列,當用整型資料定義了一個存放10個資料的陣列時,計算機將記憶體中開辟出來一段連續的空間去存盤輸入的整型資料,第一個資料放在第一個位置,第二個放在第二個位置,,,,,依次擺放,
鏈式存盤結構:將資料元素存放在任意的存盤單元中,存盤單元可以連續,也可以不連續,資料間的邏輯關系和物理關系是不一致的,
這里就需要用指標來存放資料元素的地址,以便于在混亂的存盤單元中快速準確的找到相應的資料,
鏈式存盤結構就顯得尤為靈活,不用去關心資料存放在哪里,只需要通過指標存放好資料的地址就可以了,
/這就是我對資料結構開始學習的一個總結,這是我學習的第一章,通過寫文章的方式來理清楚思路,使自己對資料結構的概念有更深的理解,其中借閱了很多資料,同時希望能與跟多的人相互交流,如果文章內容有問題的話歡迎討論,希望大家共同進步!/
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/267104.html
標籤:其他
