數據結構的簡單理解(1)

一直以來對數據結構都不是特別理解,前段時間正好看到一位大神的解說,讓自己對數據結構有了進一步的認識,故在此記錄,希望能夠幫助更多人去理解數據結構。
數據結構一般包含如下三個方面:

1、數據的邏輯結構
數據的邏輯結構可以看做是從具體問題中抽象出來的數學模型,僅僅描述數據項之間的邏輯關係(理解到這裏就可以了),即具體問題中各個數據項之間的前後關係。與數據在計算機中的存儲位置無關,獨立於計算機之外。

2、數據的存儲結構:
是數據的邏輯結構在計算機中的實現,是具體的,與具體的計算機語言有關。通常有兩種不同的存儲方式:順序存儲和鏈式存儲。

3、算法
數據的運算定義在數據的邏輯結構上,每種邏輯結構都有一個運算的集合。最常用的檢索、插入、刪除、更新、排序等運算實際上只是在抽象的數據上所施加的一系列抽象的操作。
 所謂抽象的操作,是指我們只知道這些操作是”做什麼”,而無須考慮”如何做”。只有確定了存儲結構之後,才考慮如何具體實現這些運算。

這裏寫圖片描述

爲了增加對數據結構的感性認識,我們通過下面的表格進行理解:

這裏寫圖片描述
(1)邏輯結構的描述
  表中的每一行是一個數據元素(或記錄、結點),它由學號、姓名、各科成績及平均成績等數據項組成。
表中數據元素之間的邏輯關係是:對錶中任一個結點,與它相鄰且在它前面的結點(亦稱爲直接前趨(Immediate Predecessor))最多隻有一個;與表中任一結點相鄰且在其後的結點(亦稱爲直接後繼(Immediate Successor))也最多隻有一個。表中只有第一個結點沒有直接前趨,故稱爲開始結點;也只有最後一個結點沒有直接後繼。故稱之爲終端結點。

(2)存儲結構
  該表的存儲結構是指用計算機語言如何表示結點之間的這種關係,即表中的結點是順序鄰接地存儲在一片連續的單元之中(順序存儲方式),還是用指針將這些結點鏈接在一起(鏈式存儲方式)。

(3)數據的運算
  在上面的學生成績表中,可能要經常查看某一學生的成績;當學生退學時要刪除相應的結點;進來新學生時要增加結點。究竟如何進行查找、刪除、插入,這就是數據的運算問題。
搞清楚了上述三個問題,也就弄清了學生成績表這個數據結構。

本文大部分借鑑了
http://student.zjzk.cn/course_ware/data_structure/web/gailun/gailun1.1.1.htm的文章,然後根據自己的理解整理了如上的文章。如果大家看不明白的話可以拜讀上面大神的文章。

發佈了58 篇原創文章 · 獲贊 46 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章