先放出来,这两天修改一下。这个星期估计是要加班了,郁闷,项目一直赶不出来,我责任重大啊。 结点 internal class TCStackNode<T> ...{ public TCStackNode() ...{ } private T nodeValue = default(T); //节点对象 private TCStackNode<T> nextNode = null; // 节点对应的上一节点地址 /**//// <summary> /// 节点对应的上一节点地址 /// </summary> internal TCStackNode<T> NextNode ...{ get ...{ return nextNode; } set ...{ nextNode = value; } } /**//// <summary> /// 节点的值 /// </summary> internal T NodeValue ...{ get ...{ return nodeValue; } set ...{ nodeValue = value; } } } 泛型堆栈类 /**//// <summary> /// 泛型堆栈类 /// </summary> /// <typeparam name="T"></typeparam> public class TCStack <T> ...{ /**//// <summary> /// 泛型堆栈类 构造函数 /// </summary> public TCStack() ...{ } private int stackLength = 0; //堆栈长度 private TCStackNode<T> FirstNode = null; //堆栈头 private TCStackNode<T> EndNode = null; //堆栈尾 /**//// <summary> /// 堆栈长度 /// </summary> public int StackLength ...{ get ...{ return stackLength; } } /**//// <summary> /// 入栈 /// </summary> /// <param name="NodeValue">结点值</param> public void Push(T NodeValue) ...{ TCStackNode<T> StackNode = new TCStackNode<T>(); if (stackLength == 0) ...{ StackNode.NodeValue = NodeValue; FirstNode=EndNode = StackNode; ++stackLength; } else ...{ StackNode.NodeValue = NodeValue; EndNode.NextNode = StackNode; EndNode = StackNode; ++stackLength; } } /**//// <summary> /// 出栈 /// </summary> /// <returns>结点值</returns> public T Pop() ...{ if (stackLength == 0) return default(T); T reT = EndNode.NodeValue; --stackLength; EndNode = FirstNode; for (int iCount = 1; iCount < stackLength ; iCount++) ...{ EndNode = EndNode.NextNode; } return reT; } }