2023年6月23日
單向鍊錶佇列
使用鍊錶作為底層資料結構實現的佇列
適用於壓縮儲存稀疏矩陣的兩種儲存結構是
三元組表的結點儲存了行row、列col、值value三種資訊,是主要用來儲存稀疏矩陣的一種資料結構。
十字鍊錶將行單鏈表和列單鏈表結合起來儲存稀疏矩陣。
鄰接矩陣空間複雜度達o(n2),不適於儲存稀疏矩陣。
二叉鍊錶又名左孩子右兄弟表示法,可用於表示樹或森林。
廣義表簡稱表,它是線性表的推廣。乙個廣義表是n(n≥0)個元素的乙個序列,若n=0時則稱為空表。
設ai為廣義表的第i個元素,則廣義表gl的一般表示與線性表相同:
gl=(a1,a2,…,ai,…,an)
其中n表示廣義表的長度,即廣義表中所含元素的個數,n≥0。如果ai是單個資料元素,則ai是廣義表gl的原子;如果ai是乙個廣義表,則ai是廣義表gl的子表。
廣義表具有如下重要的特性:
(1)廣義表中的資料元素有相對次序;
(2)廣義表的長度定義為最外層包含元素個數;
(3)廣義表的深度定義為所含括弧的重數。其中原子的深度為0,空表的深度為1;
(4)廣義表可以共享;乙個廣義表可以為其他廣義表共享;這種共享廣義表稱為再入錶;
(5)廣義表可以是乙個遞迴的表。乙個廣義表可以是自已的子表。這種廣義表稱為遞迴表。遞迴表的深度是無窮值,長度是有限值;
(6)任何乙個非空廣義表gl均可分解為表頭head(gl) = a1和表尾tail(gl) = ( a2,…,an) 兩部分。
注意區別長度無窮大和無限列表,由於計算機資源的限制,長度無窮大的廣義表不能在計算機中實現。
但是如果考慮這樣乙個廣義表 e = (a, e) ——這是乙個遞迴的表,它的長度是 2 。e相當於乙個無限的列表 e = (a, (a, (a, …))),這個廣義表是可以在計算機中實現的。
單鏈表的儲存密度
儲存密度=單鏈表資料項所佔空間/結點所佔空間
靜態鍊錶
讓陣列的元素都是由data和cur兩個資料域組成。就是說,陣列的每乙個下標都對應乙個data和乙個cur。
資料域data用來存放資料元素,而游標cur相當於單鏈表中的next指標,存放該元素的後繼在陣列中的下標。我們把這種用陣列描述的鍊錶叫做靜態鍊錶。
待續。。
8 31牛客網錯題集
已知 int m 10 int x m正確 int y 10 int z float t m 解析 引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 舉個例子 int a int ra a 定義引用ra,它是變數a的引用,即別...
牛客網錯題錦集day3
1.css 樣式,通過設定左和右 auto 可以把塊元素調整到中間位置。2.下面哪條宣告能固定背景 a a.background attachment fixed b.background attachment scroll c.background origin initial d.backgro...
牛客網 錯題整理(4)
錯題集 1.沒用引數的兩個函式是不能過載的.說法是否正確?答案 錯誤 解析 const 可以構成過載 2.math.round 11.5 等於 答案 12 解析 首先要注意的是它的返回值型別是long,如果 math.round 11.5f 那它的返回值型別就是int,這一點可以參考api 其次它返...