【c++】細說c++中的陣列之動態陣列陣列【c++】細說c++中的陣列之「靜態」陣列
【筆試】陣列、線性表的本質區別
陣列就是相同資料型別的元素按一定順序排列的集合。本質:物理上儲存在一組聯絡的位址上,也就是資料結構中的順序儲存物理結構。
陣列分為靜態陣列和動態陣列,在定義陣列時,首先要確定陣列的大小。
靜態陣列在編譯時就需要確定陣列的大小,所以,為了防止記憶體溢位,我們盡量將陣列定義的大一些,但是這樣太過浪費記憶體。
動態陣列則不同,它不需要在編譯時就確定大小,它的大小在程式執行過程中確定,所以可以根據程式需要而靈活的分配陣列的大小,相比靜態陣列,它更「靈活」、「自由」。但是動態陣列需要進行顯式的記憶體釋放。
線性表
線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。本質:線性表是資料結構中的邏輯結構。線性表可以通過陣列(順序儲存結構)儲存,也可以通過鏈式儲存。
線性表根據儲存結構的不同可以分為順序表和煉表。其中,順序表為順序儲存的線性表,即用陣列描述的線性表就是順序表;鍊錶為鏈式儲存的線性表。
鍊錶可以根據描述方式的不同分為靜態鍊錶和動態鍊錶。通過指針對鍊錶進行描述的稱為動態鍊錶,如我們常說的單鏈表,迴圈鍊錶等;通過陣列對鍊錶進行描述的稱為靜態鍊錶,主要為了解決沒有指標或者不用指標的情況下具備鍊錶插入刪除操作便捷的特性。
注意
看到很多人直接將順序表等同於動態陣列,認為實現了陣列長度可變,資料可刪減,但這樣做容易造成概念混淆。我們可以通過陣列實現順序表,但動態陣列的概念並不是實現陣列長度可變,而是通過new操作符或malloc函式實現執行時記憶體的動態分配。
線性表和陣列操作 一
在乙個一維陣列中將所有的元素迴圈左移p 0 思想 ab ba,a 1b 1 ba 1 include void reverse int a,int b,int r 10 對給定陣列的特定範圍進行逆置 void main reverse 0,3,r 逆置前一部分 reverse 4,9,r 逆置後一部...
線性表之線性表與陣列的區別
線性結構是最簡單也是最常用的資料結構之一。線性結構的特點 在資料元素有限集中,除第乙個元素無直接前驅,最後乙個元素無直接後續以外,每個資料元素有且僅有乙個直接前驅元素和乙個直接後繼元素。如果線性表中的資料元素時物件時,陣列存放的是物件的引用,即線性表中所有資料元素的物件引用是存放在一組連續的位址空間...
順序表 線性表 陣列的區別
陣列就是相同資料型別的元素按一定順序排列的集合。一句話 就是物理上儲存在一組聯絡的位址上。也稱為資料結構中的物理結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。一句話 線性表是資料結構中的邏輯結構。可以儲存在陣列上,也可以儲存在鍊錶上。...