求实现代码

解决方案 »

  1.   

    class Node      //定义树的节点
        {
            int _content;
            Node _leftLink;
            Node _rightLink;
            public Node(int content)
            {
                _content = content;
                _leftLink = null;
                _rightLink = null;
            }
            public int Content
            {
                set { _content = value; }
                get { return _content; }
            }
            public Node LeftLink
            {
                get { return _leftLink; }
                set { _leftLink = value; }
            }
            public Node RightLink
            {
                get { return _rightLink; }
                set { _rightLink = value; }
            }
        }
        class BinTree
        {
            readonly Node root;
            public BinTree(int content)
            {
                root = new Node(content);
            }
            public void AddNode(int content)
            {
                Node tNode = root;
                Node sNode = null;
                while (tNode != null)       //while循环用来定位要插入节点位置的父节点
                {
                    sNode = tNode;          //sNode 用来记录要插入节点的父节点
                    if (content < tNode.Content)
                    {
                        tNode = tNode.LeftLink;
                    }
                    else
                    {
                        tNode = tNode.RightLink;
                    }
                }
                if (content < sNode.Content)        //添加节点
                    sNode.LeftLink = new Node(content);
                else
                    sNode.RightLink = new Node(content);
            }
            private void Print(Node aNode)  //中序遍历
            {
                if (aNode.LeftLink != null)
                {
                    Print(aNode.LeftLink);
                }
                Console.Write("{0}\t", aNode.Content);
                if (aNode.RightLink != null)
                {
                    Print(aNode.RightLink);
                }           
            }
            public void PrintAll()
            {
                Print(root);
            }
        }    class Program
        {
            static void Main(string[] args)
            {
                Random rnd = new Random();
                BinTree t = new BinTree(rnd.Next(100));
                for (int i = 0; i < 9; i++)
                    t.AddNode(rnd.Next(100));
                Console.WriteLine();
                t.PrintAll();
                Console.ReadLine();
            }
        }
      

  2.   

        /// <summary>
        /// 二叉树接点结构
        /// </summary>
        /// <typeparam name="T"></typeparam>
        public class BinarytreeNode<T>
        {
            public BinarytreeNode<T> left;
            public BinarytreeNode<T> right;
            public T data;
        }    public class Binarytree<T>
        {
            private BinarytreeNode<T> Root;        public Binarytree()
            {
                Root = null;
            }        #region Traversal
            public List<T> getPreorderTraversal()
            {
                List<T> nodes = new List<T>();
                PreorderTraversal(Root, nodes);
                return nodes;
            }        public List<T> getInorderTraversal()
            {
                List<T> nodes = new List<T>();
                InorderTraversal(Root, nodes);
                return nodes;
            }        public List<T> getPostorderTraversal()
            {
                List<T> nodes = new List<T>();
                PostorderTraversal(Root, nodes);
                return nodes;
            }        /// <summary>
            /// 先根遍历
            /// </summary>
            /// <param name="root"></param>
            /// <param name="nodes"></param>
            public static void PreorderTraversal(BinarytreeNode<T> root, List<T> nodes)
            {
                if (root != null)
                {
                    nodes.Add(root.data);
                    if (root.left != null) PreorderTraversal(root.left, nodes);
                    if (root.right != null) PreorderTraversal(root.right, nodes);
                }
            }        /// <summary>
            /// 中根遍历
            /// </summary>
            /// <param name="root"></param>
            /// <param name="nodes"></param>
            public static void InorderTraversal(BinarytreeNode<T> root, List<T> nodes)
            {
                if (root != null)
                {
                    if (root.left != null) InorderTraversal(root.left, nodes);
                    nodes.Add(root.data);
                    if (root.right != null) InorderTraversal(root.right, nodes);
                }
            }        /// <summary>
            /// 后根遍历
            /// </summary>
            /// <param name="root"></param>
            /// <param name="nodes"></param>
            public static void PostorderTraversal(BinarytreeNode<T> root, List<T> nodes)
            {
                if (root != null)
                {
                    if (root.left != null) PostorderTraversal(root.left, nodes);
                    if (root.right != null) PostorderTraversal(root.right, nodes);
                    nodes.Add(root.data);
                }
            }
            #endregion
        }
      

  3.   

    用法    BinarytreeNode<string> bb = new BinarytreeNode<string>();
                BinarytreeNode<string> cc = new BinarytreeNode<string>();
                BinarytreeNode<string> dd = new BinarytreeNode<string>();
                bb.left = cc;
                bb.right = dd;
                bb.data = "00";
                cc.data = "111";
                cc.left = null;
                List<string>aa=new List<string>();
                Binarytree<string>.PreorderTraversal(bb, aa);//中续遍历
                string result = "";
                foreach (string a in aa)
                {
                    result += a+"--";
                }
                MessageBox.Show(result);
      

  4.   

    主要就是数据结构
    参考:
    http://www.cnblogs.com/kyovcs/archive/2008/11/02/880582.html
    http://www.cnblogs.com/ziyiFly/archive/2008/09/04/1283908.html
      

  5.   

    Select Case arrary(i, 2)
                            '   加载fcNodeId, fcMenuCaption, fiLevel,fbEnabled,fbVisible
                            ' p_Arrary[i,0]  代码垫虫絏
                            ' p_Arrary[i,1]  名称垫虫嘿
                            ' p_Arrary[i,2]  级别标志 垫虫
                            ' p_Arrary[i,3]  是否可用 琌ノ
                            ' p_Arrary[i,4]  是否可见 琌ǎ
                            ' p_Arrary[i,5]  快捷键
                            ' p_Arrary[i,6]  连接窗体
                            ' p_Arrary[i,7]  操作权限(只读、可编辑)
                            Case "1"
                                MenuNew = menu.MenuItems.Add(arrary(i, 1), AddressOf Mnu_NewMenuItem_Click)
                                MenuNew.Enabled = False
                                MenuNew.Visible = False
                                If arrary(i, 3) = True Or arrary(0, 3) = "1" Then   ''''aaaaa
                                    MenuNew.Enabled = True
                                End If
                                If arrary(i, 4) = True Or arrary(0, 4) = "1" Then  ''''aaaaa
                                    MenuNew.Visible = True
                                End If
                                If arrary(i, 1) = "【窗口】" Then
                                    MenuNew.MdiList = False  ''''aaaaa
                                End If
                                ' MnuParent1.MenuItems.Add(MenuNew)
                                MnuParent1 = MenuNew
                            Case "2"
                                MenuNew = MnuParent1.MenuItems.Add(arrary(i, 1), AddressOf Mnu_NewMenuItem_Click)
                                MenuNew.Enabled = False    ''''aaaaa
                                MenuNew.Visible = False
                                If (arrary(i, 3) = True Or arrary(i, 3) = "1") Then  ''''aaaaa
                                    MenuNew.Enabled = True
                                End If
                                If arrary(i, 4) = True Or arrary(i, 4) = "1" Then    ''''aaaaa
                                    MenuNew.Visible = True
                                End If
                                MnuParent2 = MenuNew                        Case "3"
                                MenuNew = MnuParent2.MenuItems.Add(arrary(i, 1), AddressOf Mnu_NewMenuItem_Click)
                                MenuNew.Enabled = False   ''''aaaaa
                                MenuNew.Visible = False
                                If (arrary(i, 3) = True Or arrary(i, 3) = "1") Then  ''''aaaaa
                                    MenuNew.Enabled = True
                                End If
                                If arrary(i, 4) = True Or arrary(i, 4) = "1" Then    ''''aaaaa
                                    MenuNew.Visible = True
                                End If
                                MnuParent3 = MenuNew                        Case "4"
                                MenuNew = MnuParent3.MenuItems.Add(arrary(i, 1), AddressOf Mnu_NewMenuItem_Click)
                                MenuNew.Enabled = False   ''''aaaaa
                                MenuNew.Visible = False
                                If (arrary(i, 3) = True Or arrary(i, 3) = "1") Then  ''''aaaaa
                                    MenuNew.Enabled = True
                                End If
                                If arrary(i, 4) = True Or arrary(i, 4) = "1" Then    ''''aaaaa
                                    MenuNew.Visible = True
                                End If
                                MnuParent4 = MenuNew
                            Case Else                    End Select