数据结构导论(一)
導讀:在看書前,我對這本書的內容,是 這么想的:數據結構,那大概就是關于數據和結構的東西。而講到數據,估計會說到數據類型,數據定義,數據存儲等方面。然后在結構方面,就不是很清晰,沒看書之前,用的是打遍天下無敵手的三大結構去猜的數據結構,即:順序結構、選擇結構、循環結構。
一、導圖概述(第一遍)
結合自己之前對于這本書的猜測,在看完了書之后,我依然將其分為了三個部分:概論、數據和結構。
首先,在概論中,講述了一些基礎的術語,以及告訴我們為什么要分析數據結構,還有關于整本書的一個安排流程。所以說,這一章其實是最重要的一章,它是一個戰略上的宏觀指導,看了這一章,才明白所以然和之所以然,才能明白我們學什么和為什么學。尤其是最后有一個關于整本書的安排流程,可以幫助我們對于這本書進行一個初步的大體上的把握。
其實,是數據部分。這一部分和之前預想的有些出入,在這里并沒有介紹預想中的數據類型,但介紹了集中數據結構,但相對于后續的樹、圖等,我將這一部分劃分為數據,因為我認為棧和隊列,以及線性表,都是一些簡單的數據結構(相對于圖和樹),可以算是圖和樹結構的顆粒性數據。值得一說的是:排序。將數據以一定的結構分好之后,按什么順序去存儲,直接影響了其使用性能,所以要提高性能,考慮數據的結構、類型和排序規則是必不可少的事兒。
最后,就是結構部分,也就是對于簡單數據結構的再組合,一種更深一點的結構。而其實查找表是一種運算,也就是我們常說的增、刪、改、查這些東西。它是對于我們的數據的一些基本的操作。
二、導圖概述(思考后)
前面說了一些自己關于這本書看之前的猜測,和看過之后的想法。但其實說的都是數據結構本身這一塊知識,那么數據結構,它在整個軟件工程過程中,在我們的應用中,又是扮演了什么樣的角色呢?
我認為書中說的棧、隊列、線性表,二叉樹,圖之類,其實還局限于邏輯模型這一層面上。而其存儲結構,其實就是由邏輯模型轉換為物理模型的一個過程。比如說,在二叉樹中,它有其順序存儲結構,這一存儲也就是我們在數據庫系統原理中學到的關于三范式的應用,這樣的存儲,在其數據較多的情況下,是很費空間和損效率的。而其后說到的兒叉鏈表和三叉鏈表,它的左孩子指針、右孩子指針,其實就相當于主鍵、次鍵等功用。
而后,整個的數據,卻又是根據問題得來,進一步優化。到最后能通過編碼解決問題,所依賴的是經過一系列算法和排序整理好的物理結構的數據。
所以,數據結構,其實說的不是順序、選擇、循環這三個結構,我認為其描述的是邏輯、物理結構,其從原始數據—概念模型—邏輯模型—物理模型的描述。這一切都在為解決問題而服務,它是計算機解決問題的過程中很重要的一個環節,它的排序和算法,存儲結構都將直接影響性能和功能。
三、個人感受
看完第一次,不經腦子,覺得它是新的,很難的。細細琢磨會兒,發現和數據庫系統原理有很大的聯系,也不算是新的。而且我們現在做的事兒好像都在分析著數據結構。書看完一遍,恐懼是沒有了,信心大大的有。
轉載于:https://www.cnblogs.com/hhx626/p/6010414.html
總結
- 上一篇: 单元测试概念记录
- 下一篇: abctod_123456