算法导论-13-1-持久动态集合
2016-06-13 00:00
288 查看
题目:
答:
a)需要改变的结点包括“从根结点开始,到要插入到删除的结点”的这条路径上的所有结点。
b)
e)构造一个结点中没有p域的红黑树,类似于算法导论-13.3-6-红黑树基于栈实现RB-INSERT。对于插入删除中的旋转操作,要对从根结点到旋转结点路径上的所以结点进行更新。
答:
a)需要改变的结点包括“从根结点开始,到要插入到删除的结点”的这条路径上的所有结点。
b)
//持久动态集合上的树的插入操作 tree* Persistent_Tree_Insert(tree *T, int k) { //从根结点开始 node *p = T->root, *f, *f2; //首先根结点是一定要改变的 T->root = new node(p); //改变p结点的孩子,不需要改变的那个,还是指向原来的孩子 while(p->key != k) { if(k < p->key) { //为要改的那个孩子建立一个和它一样的新结点 f = p->left; //若孩子为空,把新结点加入进去 if(!f) f2 = new node(k); else f2 = new node(f); //p指向新孩子 p->left = f2; } else { f = p->right; if(!f) f2 = new node(k); else f2 = new node(f); p->right = f2; } //以新结点为父结点,做同样的更新操作 p = f2; } //返回树 return T; }c)时间与空间都是O(h)
e)构造一个结点中没有p域的红黑树,类似于算法导论-13.3-6-红黑树基于栈实现RB-INSERT。对于插入删除中的旋转操作,要对从根结点到旋转结点路径上的所以结点进行更新。
相关文章推荐
- Linux2.6为数据结构分配内存-slab
- 算法导论-15-7-达到最高效益的调度
- 算法导论 第10章 10.4 有根树的表示
- 算法导论 第13章 红黑树
- 算法导论 第7章 快速排序
- 算法导论 第12章 二叉查找树
- 算法导论-24.2-有向无回路图中的单源最短路径
- 算法导论 第10章 10.1 栈和队列
- 算法导论 11.1-4 大数组的直接寻址表
- 算法导论-14-1-最大重叠点
- 算法导论-12-2-基数树
- 算法导论-14-2-Josephus排列
- 算法导论-8-3-排序不同长度的数据项
- 算法导论 10.4-2 O(n)时间 递归遍历二叉树
- 算法导论-9.3-3-快速排序-最坏时间O(nlgn)
- 算法导论-24.1-Bellman-Ford算法
- 算法导论-15-1-双调欧几里得旅行商问题
- 算法导论-13-3-AVL树
- 算法导论 第22章 图算法 22.2 广度优先搜索
- Accepted丶 Personal Training (数据结构 && STL) 【未完待续】