其实这么想的同时,心里还是憋着火,同时将非自己的错误揽在自己头上还有被冤枉和背锅的可能性,并不是最好的解决方式,在自己被批评的地方反思改正是一个很好的品质,但是可以理性的分析和谦虚的辩驳必要时可能还需要分析其心态和获利点,只要没有利益冲突的解释可能会有较好的效果吧
面对斥责,最好的策略是什么?“因为你的行为决定别人的行为,所以你的烦恼也因你而致。”小王看到书中的这句话,感触颇深,两个月以前的事情又浮现在脑海里…… 小王今年刚在专科学校毕业,第一份工作是销售。销售工...
其实这么想的同时,心里还是憋着火,同时将非自己的错误揽在自己头上还有被冤枉和背锅的可能性,并不是最好的解决方式,在自己被批评的地方反思改正是一个很好的品质,但是可以理性的分析和谦虚的辩驳必要时可能还需要分析其心态和获利点,只要没有利益冲突的解释可能会有较好的效果吧
面对斥责,最好的策略是什么?“因为你的行为决定别人的行为,所以你的烦恼也因你而致。”小王看到书中的这句话,感触颇深,两个月以前的事情又浮现在脑海里…… 小王今年刚在专科学校毕业,第一份工作是销售。销售工...
前言 因为项目需要,要搭建一个mariadb数据库,这里记录一下搭建过程以便之后的使用,同时进行分享。鉴于网上说的yum源安装和配置特别详细,同时大佬们对编译方式安装mysq...
谢谢楼主的分享。经一下午的研究,代码里至少有2个bug。一个13楼已经指出来了,还有一个在“红黑树删除任意节点的代码”的第17行“if (cmp == 0)”。
经过第12行h = leanRight(h)和第16行h = moveRedRight(h);的变换,h有可能不再是原来的那个h,因此第13行和第17行需要重新进行比较。仔细分析后可知(过程略),对于第13行而言,直接用if (cmp == 0 ...)也是没有问题的。问题出在第17行。
proof of correctness:
RedBlackBST<Character, Integer> tree = new RedBlackBST<Character, Integer>();
tree.put('Q', 0);
tree.put('F', 1);
tree.put('Z', 2);
tree.put('A', 3);
tree.put('G', 4);
tree.delete('Q'); // 应该删除结点Q,结果删掉的是结点F
事实上,作者在algs4这个jar包里修正了这两个bug,详见
https://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/RedBlackBST.java.html
2-3-4 Tree(2-3-4树) 二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大...