VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • C# 堆栈实现

namespace Stack{
  using System;
  public class Stack
  {
    private Node first = null;
    private int count = 0;
/***********************************************Property Procedures do not accept any parameters. Note the 
diff in the function definition (no parenthesis)************************************************/
    public bool Empty
    {/*******************************************Property 
GetProcedure********************************************/
       get
      {
        return (first == null);
      }
    }
    public int Count
    {/*******************************************Property Get 
Procedure********************************************/
     get
    {      return count;    }  }
  public object Pop()
  {
    if (first == null)
    {
      throw new InvalidOperationException ("Cant pop from an empty stack");
    }
    else
    {
      object temp = first.Value;
      first = first.Next;
      count--;
      return temp;
    }
  }
  public void Push(object o)
  {
    first = new Node(o, first);
    count++;
  }
  class Node
  {
    public Node Next;
    public object Value;
    public Node(object value) :
this(value, null) {}
    public Node(object value, Node next) 
   {

      Next = next;
      Value = value;
    }
  }}
class StackTest{
  static void Main()
  {    Stack s = new Stack(); 
   if (s.Empty)
      Console.WriteLine("Stack is Empty");
    else
      Console.WriteLine("Stack is not Empty");
    for (int i = 0; i < 5; i++)
      s.Push(i);

    Console.WriteLine("Items in Stack {0}", s.Count);

    for (int i = 0; i < 5; i++)
      Console.WriteLine("Popped Item is {0} and the count is {1}", s.Pop(), s.Count);
    s = null;
    }
  }}//*********END OF CODE



相关教程