"ExtensibleVector" (数据结构)
"ExtensibleVector"
表示一个动态可扩展向量,其中元素是通用表达式.
更多信息
- 可扩展向量可用于连续添加和前置元素以及有效的元素提取和更新.
-
CreateDataStructure[ "ExtensibleVector"] 创建一个新的空 "ExtensibleVector" CreateDataStructure[ "ExtensibleVector",elems] 创建包含 elems 的新 "ExtensibleVector" Typed[x,"ExtensibleVector"] 将类型 "ExtensibleVector" 赋予 x - 对于类型为 "ExtensibleVector" 的数据结构,可使用下列运算:
-
ds["Append",x] 将 x 追加到 ds 末端 时间:O(1) ds["Copy"] 返回 ds 的副本 时间:O(n) ds["Drop",i] 删除 ds 的第 i 个部分 时间:O(n) ds["DropAll"] 删除 ds 的所有元素 时间:O(n) ds["DropLast"] 删除 ds 的最后一个元素 时间:O(1) ds["Elements"] 返回 ds 的元素列表 时间:O(n) ds["EmptyQ"] 若 ds 没有元素,则为 True 时间:O(1) ds["Fold",fun,init] 将 fun 应用于 ds 的以 init 开始的元素,并累计结果 时间:O(n) ds["Insert",x,i ] 在位置 i 处将 x 插入 ds 时间:O(1) ds["JoinBack",elems ] 将 elems 添加到 ds 的后端 时间:O(nelems) ds["JoinFront",elems ] 将 elems 添加到 ds 的前端 时间:O(nelems) ds["Length",x] 储存在 ds 中的元素数量 时间:O(1) ds["Part",i] 给出 ds 的第 i 个部分 时间:O(1) ds["Prepend",x] 将 x 追加到 ds 的首端 时间:O(1) ds["SetPart",i,elem] 更新 ds 的第 i 个部分 时间:O(1) ds["SwapPart",i,j] 将 ds 的第 i 个部分和第 j 个元素进行互换 时间:O(1) 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 创建新的 "ExtensibleVector":
范围 (1)
信息 (1)
可使用 CreateDataStructure 创建新的 "ExtensibleVector":
应用 (11)
快速选择 (1)
属性和关系 (2)
"FixedArray" (1)
许多适用于 "ExtensibleVector" 的算法也适用于 "FixedArray".
"DynamicArray" (1)
许多适用于 "ExtensibleVector" 的算法也适用于 "DynamicArray".