Stack类的实现:
class CStack
{private int p_index;
private ArrayList list;
public CStack()
{
list=new ArrayList();
p_index =-1;
}
public int count
{
get{return list.Count;}
}
public void Push(object item)
{
list.Add(item);
p_index++;
}
public object Pop()
{
object obj=list[p_index];
list.RemoveAt(p_index);
p_index--;
return obj;
}
public void Clear()
{
list.Clear();
p_index=-1;
}
public object Peek()
{
return list[p_index];
}
}
stack类的应用:十进制转换成其他进制:
class Program
{
static void Main(string[] args)
{
int num, baseNum;
Console.Write("Enter a decimal number:");
num = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter a base:");
baseNum = Convert.ToInt32(Console.ReadLine());
Console.Write(num + " converts to ");
MulBase(num, baseNum);
Console.WriteLine(" Base " + baseNum);
}
static void MulBase(int n, int b)
{
Stack Digits = new Stack();
do
{
Digits.Push(n % b);
n = n / b;
} while (n!=0);
while (Digits.Count>0)
{
Console.Write(Digits.Pop());
}
}
}