当前位置: 代码迷 >> C# >> C#实现树的双亲示意法
  详细解决方案

C#实现树的双亲示意法

热度:24   发布时间:2016-05-05 04:31:53.0
C#实现树的双亲表示法

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 树的实现{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        //构造一个双亲法表示树的类        public class aTree        {            public int ID, pID;            public string sNode;            public aTree()            {                ID = pID = -1;                sNode = "";            }        }        //将双亲法表示的树转换为TreeNode类型        public void cTree(TreeNode pT,aTree[] aT,int n,int pNode)        {            for (int i = 0; i < n; i++)            {                if (aT[i].pID == pNode)                {                    TreeNode T = new TreeNode();                    T.Tag = aT[i].ID;                    T.Text = aT[i].sNode;                    pT.Nodes.Add(T);                    cTree(T, aT, n, i);//递归                }            }        }        private void button1_Click(object sender, EventArgs e)        {            aTree []T=new aTree[4];            for (int i = 0; i < 4; i++)                T[i] = new aTree();            T[0].ID = 0; T[0].pID = -1; T[0].sNode = "A";            T[1].ID = 1; T[1].pID = 0; T[1].sNode = "B";            T[2].ID = 2; T[2].pID = 0; T[2].sNode = "C";            T[3].ID = 3; T[3].pID = 2; T[3].sNode = "D";            TreeNode TN = new TreeNode();//添加一个根结点            TN.Tag = T[0].ID;            TN.Text = T[0].sNode;            cTree(TN, T, 4, 0);            treeView1.Nodes.Clear();            treeView1.Nodes.Add(TN);        }    }}


  相关解决方案