//深度優先
類節目
{
靜態無效的主要(字串[] args)
{1,3,5,7};
名單資料=新名單();
堆棧的OpenStack =新的堆棧();
樹根=新樹();
樹父=根;
而(真)
{
如果(parent.GetDeep()== 4)
{
}
其他
VAR tempSon = number.ToList();
)樹節=新樹(;
專案;
Node.Parent =父母;
}
顏色= darkred] [/ COLOR]
與突破;
Pop();
}
data.ForEach( p值= D 1且D = D + P);
的System.Console.WriteLine(D);
公共樹父;
公共詮釋NODEDATA;
名單();
大眾詮釋GetDeep()
{
INT I = 0;
VAR P =這一點;
而(真)
{
如果(P == NULL)
{
回報我;
}
否則
{
P = p.Parent;
我++ ;
}
}
}
公共無效的printf()
{
字符串PF ="英寸;
VAR P =這一點;
而(真)
{
如果(P == NULL)
{
的System.Console.WriteLine(PF);
返回;
}
否則
{
如果(p.NodeData!= 0)
{
PF = p.NodeData + PF;
}
P = p. Parent;
}
}
//廣度優先
類節目
{
靜態無效中主要的(字串[] args) ] {1,3} ;
名單
佇列 openQueue =新佇列() ;
樹根=新樹();
若(parent.GetDeep()== 4) parent.printf();
其他
{
VAR tempSon = number.ToList();
{
Node.NodeData =項目;
// openStack.Push }(節點);
openQueue.Enqueue(點); }
(openQueue.Count 打破;
變種的ItemData = openQueue.Dequeue() ; //openStack.Pop();
父親=的ItemData;
.Read();
}
公共靜態無效的printf(登錄
data.ForEach(P => D = D + P);
}
類樹
{
公共樹父; NODEDATA;
公開名單兒子=新的List ();
公眾詮釋 I = 0;
VAR P =此;
且(真)
{
如果(P == NULL)
{
回報我;
}
否則
{
P = p.Parent;
我++;
}
}
}
公共無效的printf()
{
字串PF =「」;
VAR P =如此; {
若(P == NULL)
的System.Console.WriteLine(PF);
否則
{
如果(p.NodeData!= 0)
{
PF = p.NodeData + PF;
}
P = p.Parent;
}
}
}
}