【小白學算法】1. 什么是線性結構與非線性結構


話說我一個測試人員為啥要學算法呢?說白了,都是生活所迫。
現在大廠面試哪個不考點算法,如果想過關,那就得刷題,但是一個小白,直接刷題只會被困難勸退。
所以,索性就學一下算法,不說能學的多深,但是總歸不至於抓瞎。

言歸正傳,都知道數據結構是算法的基礎。也就是說,雖然你學好數據結構不一定就能做好題,但是你學不好
數據結構,一定做不好題。

數據結構可以分為2大類:線性結構與非線性結構

一、線性結構

線性結構是最常用的數據結構,而其常見的形式有:數組、隊列、鏈表和棧。

線性結構的特點就是:數據元素之間存在着一對一的線性關系。比如說:
有一個數組a = [1, 3, 2, 5, 6],於是a[3] = 5,當數組下標為3的時候,就有一個對應的值是5。
同理,a[1] = 3,也是這樣1對1的關系。

而在線性結構中,又存在2種不同的存儲結構:順序存儲結構、鏈式存儲結構

  • 順序存儲結構:
    順序存儲結構的線性表稱為順序表,它的存儲元素是連續的(內存地址連續,比如數組)。

  • 鏈式存儲結構:
    鏈式存儲結構的線性表稱為鏈表,它的存儲元素不一定是連續的,元素節點中存放數據元素以及相鄰元素的地址信息,
    比如,單鏈表、雙向鏈表。因為地址不連續,所以可以利用碎片內存。

二、非線性結構

與線性結構相反,非線性結構就不是1對1的關系了。它包括:二維數組、多維數組、廣義表、樹結構、圖結構。
數組相對來說還算比較簡單,但是在應用中,樹結構跟圖結構算是用的最多的。

單從樹結構與圖結構,就可以延伸出很多算法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM