線性表和數組的區別


【C++】細說C++中的數組之動態數組

【C++】細說C++中的數組之“靜態”數組

【筆試】數組、線性表的本質區別

數組

  數組就是相同數據類型的元素按一定順序排列的集合。本質:物理上存儲在一組聯系的地址上,也就是數據結構中的順序存儲物理結構。

  數組分為靜態數組動態數組,在定義數組時,首先要確定數組的大小。

  靜態數組在編譯時就需要確定數組的大小,所以,為了防止內存溢出,我們盡量將數組定義的大一些,但是這樣太過浪費內存。

  動態數組則不同,它不需要在編譯時就確定大小,它的大小在程序運行過程中確定,所以可以根據程序需要而靈活的分配數組的大小,相比靜態數組,它更“靈活”、“自由”。但是動態數組需要進行顯式的內存釋放。

 

線性表

  線性表中數據元素之間的關系是一對一的關系,即除了第一個和最后一個數據元素之外,其它數據元素都是首尾相接的。本質:線性表是數據結構中的邏輯結構。線性表可以通過數組(順序存儲結構)存儲,也可以通過鏈式存儲。

  線性表根據存儲結構的不同可以分為順序表和鏈表。其中,順序表為順序存儲的線性表,即用數組描述的線性表就是順序表;鏈表為鏈式存儲的線性表。

  鏈表可以根據描述方式的不同分為靜態鏈表動態鏈表。通過指針對鏈表進行描述的稱為動態鏈表,如我們常說的單鏈表,循環鏈表等;通過數組對鏈表進行描述的稱為靜態鏈表,主要為了解決沒有指針或者不用指針的情況下具備鏈表插入刪除操作便捷的特性。

 

注意

  看到很多人直接將順序表等同於動態數組,認為實現了數組長度可變,數據可刪減,但這樣做容易造成概念混淆。我們可以通過數組實現順序表,但動態數組的概念並不是實現數組長度可變,而是通過new操作符或malloc函數實現運行時內存的動態分配。


免責聲明!

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



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