/******************************************/
/*★ Binary Tree 末尾に連鎖 前田 稔 ★*/
/******************************************/
using System;
class console
{
public static void Main()
{ Tree pt = new Tree();
for(int i=1; i<6; i++) pt.SetCar(i);
for(int i=11; i<14; i++) pt.SetCdr(i);
pt.Print(pt.Top);
}
}
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; }
}
//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;
}
//cdr の末端に連鎖
public void SetCdr(int v)
{ Tree wk;
Tree wp;
wk= new Tree();
wk.val= v;
if (top==null)
{ top= wk;
return;
}
for(wp=top; wp.cdr!=null; wp=wp.cdr);
wp.cdr= wk;
return;
}
//Binary Tree を表示
public void Print(Tree pt)
{ if (pt==null) return;
if (pt.car!=null) Print(pt.car);
Console.WriteLine("{0} ",pt.val);
if (pt.cdr!=null) Print(pt.cdr);
}
}
|