import java.io.*;
class sonlist//可指向有幾個兒子
{
sonlist next;//用來指向兒子的指標
datanode value;//可存放自己的節點結構(位址)
}
class datanode//節點的結構
{
int data,degree,weight;
datanode parent;
sonlist list;
}
class expand//開始要建立一般樹
{
public static int k=0;
public static void create(datanode node,int a[],int b[])
{
if(node.degree==0)
{
node.list.next=null;//指向兒子的指標為空
return;
}
for(int i=0;i<node.degree;i++)
{
k=k+1;
datanode newone=new datanode();
newone.data=a[k];
newone.degree=b[k];
newone.parent=node;//指向上一個節點當父親
node.list.next=newone.list;//父親節點的指標指向兒子
newone.list.value=newone;//存放自己的位址(節點結構)
System.out.println("節點 "+newone.data+"\t它的父節點是 "+newone.parent.data);
System.out.println("自己的節點值"+newone.list.value.data);
expand.create(newone,a,b);
}
}
}
class test//主程式
{
public static void main(String[] args)
{
int number[]={1,2,5,6,12,13,3,7,9,10,11,14,15,8,4};//節點的數值
int degree[]={3,2,0,1,1,0,2,5,0,0,0,0,0,0,0};//節點的分支度
datanode root=new datanode();//要一個樹的空間
root.data=number[0];//給根的初值
root.degree=degree[0];//給根的分支度
root.parent=null;//根的父親是空的
root.list.value=root;
expand.create(root,number,degree);
}
}
--
曾 經 滄 海 難 為 水
除 卻 巫 山 不 是 雲
[m [1;33m※ 來源:‧靜宜大學計算機中心bbs站 bbs.pu.edu.tw‧[FROM: simon.pu.edu.tw] [m