"DoublyLinkedList" (数据结构)
"DoublyLinkedList"
表示一个双向链表,其中的元素是普通表达式.
更多信息
- 双向链表对于有效地从第一个和最后一个位置添加和删除元素非常有用:
-
CreateDataStructure["DoublyLinkedList"] 创建新的空 "DoublyLinkedList" CreateDataStructure["DoublyLinkedList",elems] 创建包含 elems 的新 "DoublyLinkedList" Typed[x,"DoublyLinkedList"] 指定 x 的类型为 "DoublyLinkedList" - 对于类型为 "DoublyLinkedList" 的数据结构,可进行以下操作:
-
ds["Append",x] 将 x 追加到 ds 末端 时间:O(1) ds["Copy"] 返回 ds 的副本 时间:O(n) ds["DropAll"] 删除 ds 中的所有元素 时间:O(n) ds["DropFirst"] 删除 ds 的第一个元素 时间:O(1) ds["DropLast"] 删除 ds 的最后一个元素 时间:O(1) ds["Elements"] 返回 ds 参数的列表 时间:O(n) ds["EmptyQ"] 如果 ds 中没有元素则返回 True 时间:O(1) ds["Fold",fun,init] 将 fun 应用于以 init 开始的 ds 的元素,并累计结果 时间: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]=val 将 ds 的第 i 个元素设为 val FullForm[ds] ds 的完全形式 Information[ds] 关于 ds 的信息 InputForm[ds] ds 的输入形式 Normal[ds] 将 ds 转换成普通表达式
范例
打开所有单元关闭所有单元基本范例 (2)
可用 CreateDataStructure 创建新的 "DoublyLinkedList":
范围 (1)
信息 (1)
可用 CreateDataStructure 创建新的 "DoublyLinkedList":