class node<T> { T data; node<T> Lnode, Rnode, Pnode; public T Data { get { return data; } set { data = value; } } public node<T> LNode { get { return Lnode; } set { Lnode = value; } } public node<T> RNode { get { return Rnode; } set { Rnode = value; } } public node<T> PNode { get { return Pnode; } set { Pnode = value; } } public node(){} public node(T data) { this.data = data; } static void PreOrder<T>(node<T> rootNode) { Console.WriteLine(rootNode.data); PreOrder<T>(rootNode.LNode); PreOrder<T>(rootNode.RNode); } static node<string> BinTree() { node<string>[] binTree = new node<string>[8]; //创建结点 binTree[0] = new node<string>("A"); binTree[1] = new node<string>("B"); binTree[2] = new node<string>("C"); binTree[3] = new node<string>("D"); binTree[4] = new node<string>("E"); binTree[5] = new node<string>("F"); binTree[6] = new node<string>("G"); binTree[7] = new node<string>("H"); //使用层次遍历二叉树的思想,构造一个已知的二叉树 binTree[0].LNode = binTree[1]; binTree[0].RNode = binTree[2]; binTree[1].RNode = binTree[3]; binTree[2].LNode = binTree[4]; binTree[2].RNode = binTree[5]; binTree[3].LNode = binTree[6]; binTree[3].RNode = binTree[7]; //返回二叉树的根结点 return binTree[0]; } #region 中序遍历二叉树 static void MidOrder<T>(node<T> rootNode) { if (rootNode != null) { MidOrder<T>(rootNode.LNode); Console.WriteLine(rootNode.Data); MidOrder<T>(rootNode.RNode); } } #endregion #region 后序遍历二叉树 static void AfterOrder<T>(node<T> rootNode) { if (rootNode != null) { AfterOrder<T>(rootNode.LNode); AfterOrder<T>(rootNode.RNode); Console.WriteLine(rootNode.Data); } } #endregion #region 层次遍历二叉树 static void LayerOrder<T>(node<T> rootNode) { node<T>[] Nodes = new node<T>[20]; int front = -1; int rear = -1; if (rootNode != null) { rear++; Nodes[rear] = rootNode; } while (front != rear) { front++; rootNode = Nodes[front]; Console.WriteLine(rootNode.Data); if (rootNode.LNode != null) { rear++; Nodes[rear] = rootNode.LNode; } if (rootNode.RNode != null) { rear++; Nodes[rear] = rootNode.RNode; } } } #endregion }
见原文:http://www.cnblogs.com/xuanfeng/archive/2006/09/20/509897.html
宝爸宝妈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏