二叉排序树
2011-01-21 14:53 Clingingboy 阅读(441) 评论(0) 编辑 收藏 举报
1.
public class Node { public Node(int key) { Value = key; } public int Value { get; set; } public Node Left { get; set; } public Node Right { get; set; } public void Display() { Node current = this; if (current != null) { Console.Write("parent: "+this.Value); if (current.Left != null) Console.Write(" left: "+current.Left.Value); if (current.Right != null) Console.Write(" right: " + current.Right.Value); Console.WriteLine(); if (current.Left != null) current.Left.Display(); if (current.Right != null) current.Right.Display(); } } } public class BSTree { private Node _root; public void Display() { Node current = _root; if(current!=null) { _root.Display(); } } public Node Find(int key) { Node current = _root; while (current != null && current.Value != key) { current = key < current.Value ? current.Left : current.Right; } return current; } public void Insert(int key) { var newNode = new Node(key); if (_root == null) { _root = newNode; return; } Node current = _root; Node parent; while (true) { parent = current; if (key < current.Value) { current = current.Left; if (current == null) { parent.Left = newNode; return; } } else { current = current.Right; if (current == null) { parent.Right = newNode; return; } } } } static void Main() { var tree = new BSTree(); var numbers = new int[] { 10, 18, 3, 8, 12, 2, 7 }; foreach (var number in numbers) { tree.Insert(number); } tree.Display(); var node = tree.Find(8); } }
2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现