___19__C#手动编写Stack类,模拟栈的数据操作
来源:互联网 发布:工作流管理系统源码 编辑:程序博客网 时间:2024/06/06 08:54
Note节点类
// 节点类 class Node { // 节点有两个属性:自己、指向下一个节点 public Node Next; public object Value; public Node(object value) : this(value, null) {} //创建对象的时候先调用Node(object value,Node next) ,则 Node next 这里为空 public Node(object value, Node next) { Next = next; Value = value; } }
public class Stack { // first: 栈最上面一个节点 private Node first = null; // count: 栈中节点的数量 private int count = 0; // 判空属性,提供get访问器 public bool Empty { get { return (first == null); } } // 计数属性,提供get访问器 public int Count { get { return count; } } // 压栈操作,注意返回object public object Pop() { if (first == null) { throw new InvalidOperationException ("Cant pop from an empty stack"); } else { object temp = first.Value; first = first.Next; count--; return temp; } } // 弹栈操作,返回空 public void Push(object o) { first = new Node(o, first); count++; }}
主程序
static void Main(){ Stack s = new Stack(); if (s.Empty) Console.WriteLine("堆栈为空"); else Console.WriteLine("堆栈非空"); // 往栈中压入5个节点 for (int i = 0; i < 5; i++) s.Push(i); Console.WriteLine("往堆栈中压入了{0}个元素", s.Count); // 把栈中节点全部弹出来 for (int i = 0; i < 5; i++) Console.WriteLine("弹出了第{0}个元素,还剩{1}个元素。", (int)s.Pop()+1, s.Count); s = null;}
0 0
- ___19__C#手动编写Stack类,模拟栈的数据操作
- 【c++】模拟实现栈 类模板(Stack的基本操作)
- Stack 类的操作,将Stack中的数据添加到Map里面
- 数据结构03.1->Stack栈的模拟(数组)
- 栈(Stack)的基本操作
- stack栈的基本操作
- stack的模拟实现
- java编写Stack类
- 用js模拟的Stack
- JAVA编写的使用Socket模拟Http的GET操作
- AVA编写的使用Socket模拟Http的GET操作
- stack 顺序栈的相关操作
- 栈Stack的相关操作(java)
- 栈Stack的一些基本操作
- C# 模拟数据的join操作 转载
- 数据结构:手动编写Java栈
- java中栈Stack类操作
- [Stack]主要栈操作
- 我想静静2
- 修改git已经commit的邮箱和用户名
- 文件系统扫描的工具类
- MyEclipse2014 优化设置
- ZOJ 1860:Dog & Gopher
- ___19__C#手动编写Stack类,模拟栈的数据操作
- 如何防止android app被kill
- POJ 1065:Wooden Sticks
- Unicon字符串转成汉字String
- 【已解决】找不到android.support.v7.internal.app.WindowDecorActionbar
- callBackName cannot be found&fullPathForFilename: No file found at replay.png. 解决方案
- 优化Myeclipse启动速度
- 小C公众帮 获取微信公众号粉丝openid
- 恭贺新春,猴年大吉!