算法和数据结构
TouTouch
这个作者很懒,什么都没留下…
展开
-
红黑树的删除
红黑树的删除操作比较复杂。首先我们知道,被删除节点y永远只有一个子树(原因是,如果有两个子树的话,我们就会删除它的直接后继,它的直接后继最多有一个子树;如果它没有子树的话,我们就把它的右子树定为nil)。nil是一个用来取代NULL的节点,颜色为黑。 下面我们分情况来讨论: 如果y和x在左子树上 如果被删除节点y为红色,那么可以直接用它的黑儿子x来取代它。如果被删除的节点y是原创 2014-03-22 17:08:11 · 763 阅读 · 0 评论 -
Hashset与hashcode
最近看张孝祥的视频,其中有一节是关于原创 2014-09-07 14:03:35 · 800 阅读 · 0 评论 -
螺旋数组代码
package test; public class LuoXuanArray { public static void LuoArray(int num,int[][] a){ int k=0; int p=0; a[0][0]=1; for(int i=0;i<=(num-1)/2;i++){//每一圈为一个循环 k=num-2*i; p=a[i][i];原创 2014-10-08 21:26:33 · 965 阅读 · 0 评论 -
判断一棵二叉树是否为完全二叉树
代码如下: package treeInfo; import java.util.LinkedList; class Node{ public Node left; public Node right; public int data; public Node(int data) { super(); this.data = data; } public Node(原创 2014-10-28 21:08:19 · 3803 阅读 · 0 评论 -
红黑树的插入的实现
本文算法实现思想来自算法导论。 头文件: //rb.h #include using namespace std; typedef int type; typedef struct RedBlackTreeNode{ type key; type color;// red 0,black 1 struct RedBlackTreeNode * left; struct Red原创 2014-03-18 17:10:28 · 930 阅读 · 0 评论