"SortedMultiset" (数据结构)
"SortedMultiset"
表示一个多重集,其中成员都为通式并按顺序排序.
更多信息
- 有序的多重集在有效插入和移除及在相同元素是否可以多次出现的成员检测中都发挥着重要作用:
-
CreateDataStructure["SortedMultiset"] 创建一个使用规范排序的空白新 "SortedMultiset" CreateDataStructure["SortedMultiset",elems] 使用元素 elems 创建新 "SortedMultiset" CreateDataStructure["SortedMultiset",elems,p] 使用指定元素和排序函数 p 创建新 "SortedMultiset" Typed[x,"SortedMultiset"] 将类型 "SortedMultiset" 赋予 x - 对于类型 "SortedMultiset" 的数据结构,可使用下列运算:
-
ds["Cases",elem] 返回匹配 elem 的多重集的成员 用时:O(log n) ds["Count", elem] 返回匹配 elem 的元素数量 用时:O(log n) ds["Delete",x] 从 ds 中删除 x 一次;如果 x 是元素,返回 True 用时:O(log n) ds["DeleteAll"] 删除 ds 的所有元素 用时:O(n) ds["DeleteCases",x] 从 ds 中删除所有的 x;如果 x 是元素,返回 True 用时:O(log n) ds["Elements"] 返回 ds 的元素列表 用时:O(n) ds["EmptyQ"] 若 ds 没有成员,则为 True 用时:O(1) ds["Insert",x] 将 x 插入进多重集 用时:O(log n) ds["Length"] 返回 ds 中存储的成员数量 用时:O(1) ds["MemberQ",x] 若 x 是 ds 的成员,则为 True 用时:O(log n) ds["Visualization"] 返回 ds 的可视化表达 用时:O(n) - 也支持下列函数:
-
dsi===dsj 若 dsi 等于 dsj,则为 True FullForm[ds] ds 的完整格式 Information[ds] ds 的信息 InputForm[ds] ds 的输入格式 Normal[ds] 将 ds 转换为普通表达式
范例
打开所有单元关闭所有单元基本范例 (3)
范围 (1)
信息 (1)
可使用 CreateDataStructure 创建新的 "SortedMultiset":
可能存在的问题 (1)
集合成员 (1)
由于排序函数只看第一个元素,返回的结果会是 True: