堆栈:
namespace StackApply { public class CStack { //调用链表类 private Clist m_List; public CStack() { //构造函数 m_List = new Clist(); } /// <summary> /// 压入堆栈 /// </summary> public void Push(int PushValue) { //参数: int PushValue 压入堆栈的数据 m_List.Append(PushValue); } /// <summary> /// 弹出堆栈数据,如果为空,则取得 2147483647 为 int 的最大值; /// </summary> public int Pop() { //功能:弹出堆栈数据 int PopValue; if (!IsNullStack()) { //不为空堆栈 //移动到顶 MoveTop(); //取得弹出的数据 PopValue = GetCurrentValue(); //删除 Delete(); return PopValue; } // 空的时候为 int 类型的最大值 return 2147483647; } /// <summary> /// 判断是否为空的堆栈 /// </summary> public bool IsNullStack() { if (m_List.IsNull()) return true; return false; } /// <summary> /// 堆栈的个数 /// </summary> public int StackListCount { get { return m_List.ListCount; } } /// <summary> /// 移动到堆栈的底部 /// </summary> public void MoveBottom() { m_List.MoveFrist(); } /// <summary> /// 移动到堆栈的Top /// </summary> public void MoveTop() { m_List.MoveLast(); } /// <summary> /// 向上移动 /// </summary> public void MoveUp() { m_List.MoveNext(); } /// <summary> /// 向上移动 /// </summary> public void MoveDown() { m_List.MovePrevious(); } /// <summary> /// 取得当前的值 /// </summary> public int GetCurrentValue() { return m_List.GetCurrentValue(); } /// <summary> /// 删除取得当前的结点 /// </summary> public void Delete() { m_List.Delete(); } /// <summary> /// 清空堆栈 /// </summary> public void Clear() { m_List.Clear(); } } }
队列:
namespace Alignment { /// <summary> /// 队列类 /// </summary> public class CQueue { private Clist m_List; public CQueue() { //构造函数 //这里使用到前面编写的List m_List = new Clist(); } /// <summary> /// 入队 /// </summary> public void EnQueue(int DataValue) { //功能:加入队列,这里使用List 类的Append 方法: //尾部添加数据,数据个数加1 m_List.Append(DataValue); } /// <summary> /// 出队 /// </summary> public int DeQueue() { //功 能:出队 //返回值: 2147483647 表示为空队列无返回 int QueValue; if (!IsNull()) { //不为空的队列 //移动到队列的头 m_List.MoveFrist(); //取得当前的值 QueValue = m_List.GetCurrentValue(); //删除出队的数据 m_List.Delete(); return QueValue; } return 2147483647; } /// <summary> /// 判断队列是否为空 /// </summary> public bool IsNull() { //功能:判断是否为空的队列 return m_List.IsNull(); } /// <summary> /// 清空队列 /// </summary> public void Clear() { //清空链表 m_List.Clear(); } /// <summary> /// 取得队列的数据个数 /// </summary> public int QueueCount { get { //取得队列的个数 return m_List.ListCount; } } } }