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

本文介绍了一个使用C#实现的泛型堆栈类。该类包括内部结点类TCStackNode,定义了堆栈的基本操作如Push和Pop,并且维护了堆栈长度等属性。适用于需要使用到堆栈数据结构的软件开发场景。
642

被折叠的 条评论
为什么被折叠?



