C 基礎 C 中的資料結構

2022-02-02 04:21:49 字數 1357 閱讀 8381

陣列具有以下的特點:

陣列屬於線性結構,在記憶體中是連續存放的。

陣列的元素型別必須相同。

陣列可以直接通過下標訪問。

陣列的查詢速度非常快,新增和刪除速度慢。

陣列在初始化時要指定陣列長度。

動態陣列具有以下的特點:

arraylist的底層其實就是乙個陣列。

arraylist在宣告時不必指定長度,會根據儲存的資料動態的增加或減少長度。

arraylist會把所有的元素都當做object處理,因此可以儲存不同資料型別的元素。

插入和刪除乙個元素時,會移動它之後所有元素的位置,效率低,頻繁進行插入或者刪除元素推薦使用linkedlist。

arraylist是非型別安全的,在插入和刪除元素時會進行拆箱和裝箱問題,影響效能,效率低。

泛型list具有以下的特點:

list是arraylist的泛型類。

泛型list需要在宣告時指定具體的型別。

泛型list沒有裝箱和拆箱操作,因此list比arraylist效率高而且型別安全。

雙向鍊錶具有如下特點:

鍊錶的節點在記憶體中的空間是不連續的,每塊空間稱作乙個節點,每個節點都存有乙個前驅和後置指標,分別指向前乙個節點和後乙個節點,因此向鍊錶中新增和刪除元素的效果高,只需要更改相應節點的指標指向即可。

鍊錶的查詢效率低。查詢元素時不能通過下標進行訪問,只能從頭開始通過位址按順序查詢。

堆疊具有如下特點:

堆疊是先進後出的原則,最先插入的元素最後被訪問,最後插入的元素最先被訪問。

push入棧,pop出棧並返回棧頂元素,peek只返回棧頂元素。

鍊錶具有以下特點:

鍊錶是先進先出的原則,最先進入的元素最先被訪問,最後進入的元素最後被訪問。

enqueue入佇列,dequeue出佇列並返回列首元素,peek只返回列首元素。 

字典具有以下特點:

建立字典時需要指定key和value的資料型別。

字典中的key值是唯一的,value的值可以不唯一。

可以通過key快速查詢對應的value,速度快,但是消耗記憶體。

array

需要處理的元素數量確定並且需要使用下標進行訪問時可以考慮,不過建議使用list。

arraylist

不推薦使用,建議使用泛型list。

泛型list

需要處理的元素數量不確定時,通常建議使用。

liskedlist

鍊錶適合元素數量不固定,而且需要經常增減節點的情況,鍊錶增減元素效率高。

queue

佇列適合於先進先出的情況。

stack

堆疊適合於先進後出的情況。

dictionary

字典適合於需要鍵值對操作的情況。

C 基礎 資料結構

在 c 中,變數分為以下幾種型別 值型別 value types int char float 引用型別 reference types object dynamic string array 物件型別變數的型別檢查是在編譯時發生的,而動態型別變數的型別檢查是在執行時發生的。裝箱 值型別轉換為物件型...

C 基礎系列(資料結構)

我的c 底子還是太差,有很多東西都搞不清楚!以後還是每天都學一點。1.結構體的使用 struct type name object names 滿熟悉的,注意可以直接在宣告的時候定義變數。2.如何訪問結構體的成員。這裡得說一下,結構體和類之間的區別 所以很多時候,可以考慮使用結構體,另外注意結構體不...

資料結構(C )樹的基礎

樹 n n 0 個結點的有限集合。當n 0時,稱為空樹 任意一棵非空樹滿足以下條件 有且僅有乙個特定的稱為根的結點 當n 1時,除根結點之外的其餘結點被分成m m 0 個互不相交的有限集合t1,t2,tm,其中每個集合又是一棵樹,並稱為這個根結點的子樹。樹的定義採用遞迴方法 結點的度 結點所擁有的子...