国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

二叉樹(簡單版)

2019-11-17 02:34:11
字體:
來源:轉載
供稿:網友

二叉樹(簡單版)

樹是一種非線性結構,樹的本質是將一些節點由邊連接起來,形成層級的結構,即1:N的關系,下面是手動構建數據之間的關系:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Tree3{    //手動構建節點之間的關系    public class PRogram    {        static void Main(string[] args)        {                      Node<string> rootNode =BinTree();                      Console.WriteLine("先序遍歷方法遍歷二叉樹: ");            PreOrde(rootNode);            Console.WriteLine("");            Console.WriteLine("");            Console.WriteLine("中序遍歷方法遍歷二叉樹:");            InOrde(rootNode);            Console.WriteLine("");            Console.WriteLine("");            Console.WriteLine("后序遍歷方法遍歷二叉樹:");            AfterOrde(rootNode);            Console.ReadKey();        }        /// <summary>        /// 構建二叉樹        /// </summary>        /// <returns></returns>        public static Node<string> BinTree()        {            Node<string>[] binTree = new Node<string>[11];            //創建節點            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[8] = new Node<string>("J");            binTree[9] = new Node<string>("K");            binTree[10] = new Node<string>("L");            //構建關系            binTree[0].LNode = binTree[1];            binTree[0].RNode = binTree[2];            binTree[1].LNode = binTree[3];            binTree[1].RNode = binTree[4];            binTree[2].LNode = binTree[6];            binTree[2].RNode = binTree[7];            binTree[6].RNode = binTree[8];            binTree[7].RNode = binTree[9];            binTree[8].RNode = binTree[10];            //返回跟節點            return binTree[0];        }        /// <summary>        /// 先序遍歷(先訪問跟節點->在訪問左孩子->在訪問右孩子)遞歸         /// 注意的是:遍歷左右子樹時仍然采用中序遍歷方法。        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="rootNode"></param>        public static void PreOrde<T>(Node<T> rootNode)        {            if (rootNode != null)            {                Console.Write(string.Format("{0} ", rootNode.Data));                PreOrde(rootNode.LNode);                PreOrde(rootNode.RNode);            }        }        /// <summary>        /// 中序遍歷(先訪問左節點->在訪問跟節點->在訪問右孩子)遞歸        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="rootNode"></param>        public static void InOrde<T>(Node<T> rootNode)        {            if (rootNode != null)            {                InOrde(rootNode.LNode);                Console.Write(string.Format("{0} ", rootNode.Data));                InOrde(rootNode.RNode);            }        }        /// <summary>        /// 后序遍歷(先訪問左節點->在訪問右節點->在訪問跟孩子)遞歸        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="rootNode"></param>        public static void AfterOrde<T>(Node<T> rootNode)        {            if (rootNode != null)            {                AfterOrde(rootNode.LNode);                AfterOrde(rootNode.RNode);                Console.Write(string.Format("{0} ", rootNode.Data));            }        }      }    //節點類    public class Node<T>    {             private T data;        /// <summary>        /// 數據        /// </summary>        public T Data        {            get { return data; }            set { data = value; }         }        private Node<T> lnode;        /// <summary>        /// 左孩子        /// </summary>        public Node<T> LNode        {            get { return lnode; }            set { lnode = value; }         }                  private Node<T> rnode;        /// <summary>        /// 右孩子        /// </summary>        public Node<T> RNode {             get { return rnode; }            set { rnode = value; }             }        /// <summary>        /// 無參構造函數        /// </summary>        public  Node()        {        }        /// <summary>        /// 節點構造函數        /// </summary>        /// <param name="data"></param>        public  Node(T data)        {            this.data = data;        }           }}運行結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄山市| 定州市| 谷城县| 定州市| 苍山县| 海晏县| 泸水县| 长乐市| 沁源县| 大冶市| 阿图什市| 东宁县| 南靖县| 那坡县| 比如县| 乐安县| 铜梁县| 新蔡县| 拉孜县| 乌鲁木齐市| 贡觉县| 涞水县| 安顺市| 中宁县| 江阴市| 东莞市| 桑植县| 广昌县| 邢台市| 肥东县| 阿巴嘎旗| 比如县| 娱乐| 乐平市| 成武县| 广宁县| 银川市| 宣化县| 股票| 津市市| 旌德县|