"LinkedList" (数据结构)

"LinkedList"

表示一个链表,其中的元素为普通表达式.

更多信息

  • 链表可用于高效地前置和追加元素:
  • CreateDataStructure["LinkedList"]创建新的空 "LinkedList"
    CreateDataStructure["LinkedList",elems]创建一个包含 elems 的新的空 "LinkedList"
    Typed[x,"LinkedList"]指定 x 的类型为 "LinkedList"
  • 对于类型为 "LinkedList" 的数据结构,可进行以下操作:
  • ds["Append",x]x 追加到 ds时间:O(1)
    ds["Copy"]返回 ds 的副本时间:O(n)
    ds["DropAll"]删除 ds 中的所有元素时间:O(n)
    ds["DropFirst"]删除 ds 的第一个元素时间:O(1)
    ds["Elements"]返回 ds 的元素列表时间:O(n)
    ds["EmptyQ"]如果 ds 中没有元素则返回 True时间:O(1)
    ds["Fold",fun,init]fun 应用于 ds 的以 init 开始的元素,并累计结果时间:O(n)
    ds["JoinBack",elems]elems 添加到 ds 的后端时间:O(nelems)
    ds["JoinFront",elems]elems 添加到 ds 的前端时间:O(nelems)
    ds["Length"]存储在 ds 中的元素的数量时间:O(1)
    ds["Part",i]给出 ds 中的第 i 个元素时间:O(n)
    ds["Prepend",x]x 添加到 ds 的开头时间:O(1)
    ds["SetPart",i,elem]更新 ds 的第 i 个元素时间:O(n)
    ds["SwapPart",i,j]ds 的第 i 个元素和第 j 个元素互换时间:O(n)
    ds["Visualization"]返回 ds 的可视化时间:O(n)
  • 还支持以下函数:
  • dsi===dsj如果 dsi 等于 dsj 则为 True
    ds["Part",i]=valds 的第 i 个元素设为 val
    FullForm[ds]ds 的完全形式
    Information[ds]关于 ds 的信息
    InputForm[ds]ds 的输入形式
    Normal[ds]ds 转换成普通表达式

范例

打开所有单元关闭所有单元

基本范例  (2)

可用 CreateDataStructure 创建新的 "LinkedList"

可以追加元素:

也可将元素添加到开头:

返回总长度:

提取第一个元素:

改变元素:

该元素已被更新:

返回表达式形式的 ds

快速前置和追加元素:

可视化数据结构:

求所有元素的和:

范围  (1)

信息  (1)

可用 CreateDataStructure 创建新的 "LinkedList"

数据结构 ds 的信息: