先放出来,这两天修改一下。这个星期估计是要加班了,郁闷,项目一直赶不出来,我责任重大啊。
结点
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; }
}
}
... {
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;
}
}
/// 泛型堆栈类
/// </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;
}
}