數據結構中數據存儲的幾種形式

數據結構中數據存儲的幾種形式

1.棧:數據從一個口進,從一個口出
特點:先入後出
2.隊列:數據用兩個口進,從兩個口出
特點:先入先出
3.數組:
特點:查找容易,增刪難
例子:
int [] arr = new int [1,2,3,4];
當創建數組的時候,對於1,2,3,4已經創建索引,並且將首地址賦予arr,要是查找,就很快;對於增刪操作,當要是刪除原本的數組裏面的某一個數據,首先就需要重新建一個數組,然後將刪除數據後的數組裏面的數據複製後粘貼到新建的數組裏面,這個過程就比較耗時;
新建一個數組的原因:數組創建之後數組的長度是不變的,當進行增刪操作的時候,數組的長度就變化了,源數組就不適用了,這時就需要一個新的數組來存放操作後的數據。

4.鏈表:
特點:查找複雜,增刪容易
有關於鏈表:單獨的數據存在的形式:
單獨數據的存在形式
兩種鏈表的形式:單項鍊表和雙向鏈表
單向鏈表:
只能向一個方向 ,不具有記憶性
雙向鏈表:
具有記憶性,可以知道上一個數據源是什麼

有關於鏈表查找複雜的講解:在鏈表之中的數據不是像數組那樣數據時連續的,在鏈表之中,數據是離散的,所以每次查找數據會就需要從頭開始查詢,這樣就比較複雜並且耗時

增刪的容易性:應爲單獨數據存在的形式,增刪數據就只需要修改一下下一個數據的數據源地址就可以了

5.樹:
有關於樹的一些基本概念:
樹根,節點,樹葉
樹根:樹最上面的節點 也叫作父根
節點:連接着樹根與樹葉的點,就叫做節點
樹葉:除了上面的一個節點,下面不存在節點

二叉樹:
分支不能超過兩個,可以說是左子樹(左邊)與右子樹(右邊)
完全二叉樹(平衡二叉樹):所有的節點都含有兩個兒子(左子樹與右子樹)
不完全二叉樹:並不是說所有的節點都有兩個兒子
排序樹/查找樹:
排序樹特點:小於的數就往左,大於的數就往右
紅黑樹:
特點:趨近於平衡樹,查詢速度特別快,查詢葉子結點的最大次數和最小次數不能超過兩倍
有關於紅黑樹的約束:
a.節點可以是紅色的也可以是黑色的
b.根節點是黑色的
c.葉子結點(空節點)是黑色的
d.每個紅色的節點的子節點都是黑色的
e.任何一個節點到其每一個葉子節點的所有路徑上的黑色節點數相同

發佈了23 篇原創文章 · 獲贊 1 · 訪問量 770
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章