2.1、栈
先进后出(LIFO)数据结构
进栈 Push
出栈 Pop
取数 Peek
namespace 栈
{
class Program
{
static void Main(string[] args)
{
CStack str = new CStack();
str.Push("k");
str.Push("c");
str.Push("a");
str.Push("t");
str.Push("s");
str.Push("C");
for (int i = 0; i < 6; i++)
{
Console.WriteLine(str.Pop());
}
Console.ReadLine();
}
}
public 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];
}
}
}

2.2、队列
先进先出(FIFO)数据结构
namespace 队列
{
class Program
{
static void Main(string[] args)
{
CQueue queue = new CQueue();
queue.EnQueue("Q");
queue.EnQueue("U");
queue.EnQueue("E");
queue.EnQueue("U");
queue.EnQueue("E");
for (int i = 0; i <= 4; i++)
{
Console.WriteLine(queue.Peek());
queue.DeQueue();
}
Console.ReadLine();
}
}
public class CQueue //队列
{
private ArrayList pqueue;
public CQueue()
{
pqueue = new ArrayList();
}
public void EnQueue(object item) //入队
{
pqueue.Add(item);
}
public void DeQueue() //出队
{
pqueue.RemoveAt(0);
}
public object Peek()
{
return pqueue[0];
}
public void ClearQueue()
{
pqueue.Clear();
}
public int Count()
{
return pqueue.Count;
}
}
}