/******************************************/
/*★ 連鎖を正順(逆順)で印字 前田 稔 ★*/
/******************************************/
using System;
class console
{
public static void Main()
{ List pt = new List();
for (int i=1; i<10; i++) pt.Push(i);
pt.BPrint();
Console.WriteLine("");
pt.Print();
}
}
class List
{
public int val; //セルの値
public List ptr; //セルのリンク
public List top; //List の先頭(最後に Push されたセル)
//Constructor
public List()
{ ptr = null;
top = null;
}
//List の先頭に追加
public List Push(int v)
{ List wk;
wk = new List();
wk.val = v;
wk.ptr = top;
top = wk;
return wk;
}
//List の先頭から(最後に Push された値)から印字
public void BPrint()
{ List wk;
for(wk=top; wk!=null; wk= wk.ptr)
Console.Write("val= {0} ",wk.val);
}
//List の後部から(登録された順)に印字
public void Print()
{ if (top!=null) pnt(top);
}
//登録順に印字する再起関数
void pnt(List pt)
{ if (pt==null) return;
pnt(pt.ptr);
Console.Write("val= {0} ",pt.val);
return;
}
}
|