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); } } }