namespace SeqStack { class Program { static void Main(string[] args) { SeqStackClass stackManager = new SeqStackClass();
SeqStack<Student> seqStack = stackManager.SeqStackInit<Student>(10);
Console.WriteLine("******************** 压入ID=1,ID=2,ID=3的元素 ***********************n"); //压入ID=1,ID=2,ID=3的元素 stackManager.SeqStackPush(seqStack, new Student() { ID = 1, Name = "一线码农", Age = 23 }); stackManager.SeqStackPush(seqStack, new Student() { ID = 2, Name = "huangxincheng520", Age = 23 }); stackManager.SeqStackPush(seqStack, new Student() { ID = 3, Name = "51cto", Age = 23 });
Console.WriteLine(".... 压入成功,当前栈中元素有:" + stackManager.SeqStackLen(seqStack) + "个");
Console.WriteLine("n****************** 查看栈顶元素 ********************");
var result = stackManager.SeqStackPeek(seqStack);
Console.WriteLine("栈顶元素为:ID=" + result.ID + ",Name=" + result.Name + ",Age=" + result.Age);
Console.WriteLine("n******************** 弹出栈顶元素 ***********************");
stackManager.SeqStackPop(seqStack);
Console.WriteLine("n****************** 查看栈中的元素 ********************");
for (int i = 0; i < stackManager.SeqStackLen(seqStack); i++) { Console.WriteLine("栈顶元素为:ID=" + seqStack.data[i].ID + ",Name=" + seqStack.data[i].Name + ",Age=" + seqStack.data[i].Age); }
Console.Read(); } }
#region 学生数据实体 /// <summary> /// 学生数据实体 /// </summary> public class Student { public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; } } #endregion
#region 栈的数据结构 /// <summary> /// 栈的数据结构 /// </summary> public class SeqStack<T> { public T[] data;
/// <summary> /// 栈顶指针 /// </summary> public int top = -1;
public SeqStack(int lenth) { data = new T[lenth]; } } #endregion
public class SeqStackClass { #region 栈的初始化操作 /// <summary> /// 栈的初始化操作 /// </summary> /// <typeparam></typeparam> /// <returns></returns> public SeqStack<T> SeqStackInit<T>(int length) { SeqStack<T> seqStack = new SeqStack<T>(length);
seqStack.top = -1;
return seqStack; } #endregion
#region 判断栈是否为空 /// <summary> /// 判断栈是否为空 /// </summary> /// <typeparam></typeparam> /// <param></param> /// <returns></returns> public bool SeqStackIsEmpty<T>(SeqStack<T> seqStack) { return seqStack.top == -1; } #endregion
#region 清空栈 /// <summary> /// 清空栈 /// </summary> /// <typeparam></typeparam> /// <param></param> public void SeqStackClear<T>(SeqStack<T> seqStack) { seqStack.top = -1; } #endregion
(编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|