/********************************************/
/*★ Binary Tree Object Class 前田 稔 ★*/
/********************************************/
using System;
class console
{
public static void Main()
{ Tree pt = new Tree();
Tree wk;
for(int i=1; i<6; i++) pt.SetCar(i);
for(wk=pt.Top; wk!=null; wk=pt.Car(wk))
Console.WriteLine("{0}",wk.val);
System.Console.ReadLine();
}
}
class Tree
{
Tree car; //前のポインタ
Tree cdr; //後のポインタ
public int val; //データの格納領域
Tree top; //Binary Tree のトップポインタ
//Constructor
public Tree()
{ car = null;
cdr = null;
top = null;
}
//top を取得
public Tree Top
{
get
{
return top;
}
}
//pt の car を取得
public Tree Car(Tree pt)
{ if (pt==null) return null;
return pt.car;
}
//pt の cdr を取得
public Tree Cdr(Tree pt)
{ if (pt==null) return null;
return pt.cdr;
}
//car の末端にセット
public void SetCar(int v)
{ Tree wk;
Tree wp;
wk= new Tree();
wk.val= v;
if (top==null)
{ top= wk;
return;
}
for(wp=top; wp.car!=null; wp=wp.car);
wp.car= wk;
return;
}
}
|