数据结构的简单理解(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的文章,然后根據自己的理解整理了如上的文章。如果大家看不明白的話可以拜讀上面大神的文章。
總結
以上是生活随笔為你收集整理的数据结构的简单理解(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SyntaxError: Missing
- 下一篇: 数据结构的简单理解(2)