(十)加工并存储数据的数据结构

来源:互联网 发布:微信充值恶搞软件 编辑:程序博客网 时间:2024/04/29 16:33

         树和二叉树

                二叉树定义为所有节点的儿子个数不超过两个

         优先队列和堆

              优先队列定义:一,插入一个数值,二,取出最小数值(获取数值,并删除)

            堆性质:儿子的值一定不小于父亲的值,此外树节点是从上到下,从左到右排列

           堆实现有两两种方式:一,利用指针(难);二,利用数组(易);由父节点得知子节点:设父节点编号为i,则子节点为2i+1,2i+2;

         利用优先队列:


PKU3253也可以利用优先队列解决。

   二叉搜索树

     功能:一,插入一个数值;二,查询是否包含某个数值;三,删除某个数值。

满足条件:左子树上所有节点都比自己小,右子树所有节点都比自己大。

二叉查找树有时候需要平衡才能体现出其性能,否则跟链表的复杂度一样了,于是有平衡二叉树。


并查集

用来管理元素分组情况的数据结构。

结构:初始化,合并,查询。

实现注意点:树高度,rank从小向大连边,路径压缩。

利用并查集解决:



0 0