没有合适的资源?快使用搜索试试~ 我知道了~
这个程序主要部分(Recolor函数)不需要了解c#语言,只要知道类是什么就可以看懂了,主要在于树的旋转,重新着色,如果有需要弄懂具体算法的朋友可以自己根据Recolor函数代码进行画图分析
资源推荐
资源详情
资源评论
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace winterHomework
{
//算法思路 http://blog.csdn.net/goodluckwhh/article/details/11804733 + http://blog.csdn.net/kartorz/article/details/8865997
public class TreeNode<T>
{
public int data { set; get; }
public string color { set; get; }
public TreeNode<T> father { get; set; }
public TreeNode<T> leftChild { set; get; }
public TreeNode<T> rightChild { set; get; }
public TreeNode(int item)
{
this.data = item;
this.leftChild = null;
this.rightChild = null;
this.color = "red";
}
public TreeNode()
{
this.data = default(int);
this.leftChild = null;
this.rightChild = null;
this.color = "red";
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace winterHomework
{
//算法思路 http://blog.csdn.net/goodluckwhh/article/details/11804733 + http://blog.csdn.net/kartorz/article/details/8865997
public class TreeNode<T>
{
public int data { set; get; }
public string color { set; get; }
public TreeNode<T> father { get; set; }
public TreeNode<T> leftChild { set; get; }
public TreeNode<T> rightChild { set; get; }
public TreeNode(int item)
{
this.data = item;
this.leftChild = null;
this.rightChild = null;
this.color = "red";
}
public TreeNode()
{
this.data = default(int);
this.leftChild = null;
this.rightChild = null;
this.color = "red";
}
}
public class RBTree<T>
{
public TreeNode<T> root { set; get; }
public RBTree()
{
root = null;
}
public TreeNode<T> CreateNewNode(int item){
TreeNode<T> newNode = new TreeNode<T>(item);
return newNode;
}
public TreeNode<T> AppendNode(TreeNode<T> newNode)
{
//要插入的节点
if (root == null)
{
root = newNode;
root.color = "black";
return root;
}
//找到要插入的位置
TreeNode<T> traversal = root;
bool insertSuccess=false;
while (!insertSuccess)
{
if (newNode.data > traversal.data) {
if ( traversal.rightChild != null)
}
public class RBTree<T>
{
public TreeNode<T> root { set; get; }
public RBTree()
{
root = null;
}
public TreeNode<T> CreateNewNode(int item){
TreeNode<T> newNode = new TreeNode<T>(item);
return newNode;
}
public TreeNode<T> AppendNode(TreeNode<T> newNode)
{
//要插入的节点
if (root == null)
{
root = newNode;
root.color = "black";
return root;
}
//找到要插入的位置
TreeNode<T> traversal = root;
bool insertSuccess=false;
while (!insertSuccess)
{
if (newNode.data > traversal.data) {
if ( traversal.rightChild != null)
剩余12页未读,继续阅读
资源评论
qq_33956242
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功