F 入門 十一 鍊錶與陣列

2022-07-04 21:42:14 字數 1919 閱讀 2946

鍊錶和陣列都是資料的集合。

f#的鍊錶是線性列表的一種,單方向鍊錶,它是基本資料結構之一,一種攜帶指向下乙個元素的指標的資料結構。鍊錶中的元素必須是同型別的資料型別。

而陣列與鍊錶很相似,但它可以使用陣列索引來訪問到陣列中的某個元素。同時,它的元素也必須全部是同型別的資料型別。

鍊錶的寫法是用來表示,同時元素用";"來分隔。當然不用";"分隔情況也是有的。

請看下面的一些例子:

> ;; // 空鍊錶

val it :'a list =

> [1;2;3];;// 普通鍊錶,用";"來分隔元素

val it :int list = [1; 2; 3]

// 用換行來分隔元素

> leta = [ "monday"

"tuesday"

"wednesday"];;

val a :string list = ["monday"; "tuesday"; "wednesday"]

鍊錶可以使用::與@符號進行鏈結。

::是將元素與鍊錶進行鏈結,::的左側是元素,右側是鍊錶,同時兩側必須是同型別資料。

>1::[2;3];;

val it :int list = [1; 2; 3]

>1::2::3::[4];;

val it :int list = [1; 2; 3; 4]

@是將兩個鍊錶進行連線。

>[1;2]@[3;4;5];;

val it :int list = [1; 2; 3; 4; 5]

>["a";"b"]@["c";"d";"e"];;

val it :string list = ["a"; "b"; "c"; "d";"e"]

鍊錶的簡便寫法:

> [1..10];; // 預設增量為1

val it :int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]

> [1..2..10];; // 增量為2

val it :int list = [1; 3; 5; 7; 9]

> [1..3..10];;// 增量為3

val it :int list = [1; 4; 7; 10]

陣列的寫法是用[||],同時元素用";"來分隔。當然不用";"分隔情況也是有的。

> [||];;// 空陣列

val it : 'a =[||]

> [|1;2;3|];;// 普通陣列,用";"來分隔元素

val it : int =[|1; 2; 3|]

// 用換行來分隔元素

>  let a = [|"monday"

"tuesday"

"wednesday"|];;

val a : string =[|"monday"; "tuesday"; "wednesday"|]

使用陣列索引可以訪問陣列中的元素,第乙個元素索引為0。

>  let a = [|"monday"

"tuesday"

"wednesday"|];;

val a :string = [|"monday"; "tuesday"; "wednesday"|]

> a.[0];;

val it :string = "monday"

陣列的簡略寫法:

> [|1 .. 10|];;// 預設增量為1

val it :int = [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10|]

> [|1 .. 2 .. 10|];;// 增量為2

val it :int = [|1; 3; 5; 7; 9|]

> [|1 .. 3 .. 10|];; // 增量為3

val it :int = [|1; 4; 7; 10|]

陣列與鍊錶

陣列和鍊錶簡介 在計算機中要對給定的資料集進行若干處理,首要任務是把資料集的一部分 當資料量非常大時,可能只能一部 分一部分地讀取資料到記憶體中來處理 或全部儲存到記憶體中,然後再對記憶體中的資料進行各種處理。例如,對於資料集 s,要求 s 中元素的和,首先要把資料儲存到記憶體中,然後再將記憶體中的...

陣列與鍊錶

陣列,在記憶體上給出了連續的空間.鍊錶,記憶體位址上可以是不連續的,每個鍊錶的節點包括原來的記憶體和下乙個節點的資訊 單向的乙個,雙向鍊錶的話,會有兩個 優點 使用方便 查詢效率 比煉表高,記憶體為一連續的區域 缺點 大小固定,不適合動態儲存,不方便動態新增 優點 可動態新增刪除 大小可變 缺點 只...

陣列與鍊錶

使用陣列意味著所有待辦事項在記憶體中都是相連的 緊靠在一起的 所以在陣列中新增新元素也可能很麻煩。如果沒有了空間,就得移到記憶體的其他地方,因此新增新元素的速度會很慢。一種解決之道是 預留座位 即便當前只有3個待辦事項,也請計算機提供10個位置,以防需要新增待辦事項。這樣,只要待辦事項不超過10個,...