標籤:
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); } }}
C#實現樹的雙親標記法