1。定義一個椎棧類
using System;
namespace Stack
{
/// <summary>
/// 堆棧類
/// </summary>
public class stack
{
public stack(){}
private int count=0;//堆棧中的數目
private Node curNode=null; //堆棧中的當前節點
/// <summary>返回椎棧中節點的個數</summary>
public int Count
{
get{return count;}
}
/// <summary>
/// 進棧
/// </summary>
/// <param name="o">進棧對象</param>
public void Push(object o)
{
curNode = new Node(o,curNode);
count++;
}
/// <summary>
/// 出棧
/// </summary>
/// <returns>棧內當前節點值</returns>
public object Pop()
{
if(curNode==null)
{
throw new Exception("空棧!");
}
else
{
object objValue = curNode.Value;
curNode = curNode.NextNode;
count--;
return objValue;
}
}
}
/// <summary>
/// 椎棧中節點類(原采用的是結構,但在結構中不參定義本身的對象,如下的Node變量)
/// </summary>
public class Node
{
private Node _next;
private object _value;
public Node(object v) : this(v,null){}
public Node(object v,Node o)
{
_next = o;
_value = v;
}
public Node NextNode
{
get{return _next;}
}
public object Value
{
get{return _value;}
}
}
}
2。調用
private stack obj = new stack();
private void Form1_Load(object sender, System.EventArgs e)
{
for(int i=0;i<100;i++)
{
obj.Push(i);
}
}
private void button1_Click(object sender, System.EventArgs e)
{
for(int i=0;i<=obj.Count;i++)
{
richTextBox1.AppendText(obj.Pop().ToString() +"\n");
}
}
浙公网安备 33010602011771号