自定义栈Stack<T>
来源:互联网 发布:孔子学院的数据 编辑:程序博客网 时间:2024/05/21 17:10
using System;public class MyStack<T>{ T[] arr; int count=0; int copacity = 0; public MyStack() { arr = new T[count]; } public MyStack(int a) { if (a > count) { arr = new T[a]; copacity = a; } else { arr = new T[count]; copacity = count; } } public int Count { get { return this.count; } } //添加数据 public void Push(T name) { T[] arrT = arr; if (count == copacity) { arr = new T[count + 1]; for (int i = 0; i < count; i++) { arr[i] = arrT[i]; } arr[count] = name; } else if (count < copacity) { arr[count] = name; } else { arr = new T[count + 1]; for (int i = 0; i < count; i++) { arr[i] = arrT[i]; } arr[count] = name; } count++; } //出栈 public T Pop() { try { T name = arr[count-1]; arr[count - 1] = default(T); T[] arrT = arr; count--; if (count > copacity) { arr = new T[count]; for (int i = 0; i < count; i++) { arr[i] = arrT[i]; } } return name; } catch { throw new Exception("没有数据,不能取钱"); } } //移除所有数据 public void Clear() { int j = count; for (int i = 0; i < j; i++) { Pop(); } } //返回栈顶数据 public T Peek() { try { return arr[count - 1]; } catch { throw new Exception("小子你钱包空了,不用再看了"); } } //确定某元素是否在stack中 public bool Contains(T name) { for (int i = 0; i < count; i++) { if (arr[i].Equals(name)) { return true; } } return false; }}
阅读全文
0 0
- 自定义栈Stack<T>
- 自定义Stack
- 自定义Stack、Queue类
- 基于数组实现Java 自定义Stack栈类及应用
- 基于链表实现Java 自定义Stack栈
- c#自定义LinkedList Queue Stack
- T-SQL-自定义函数
- T-SQL自定义函数
- T-Sql自定义函数
- T-SQL 自定义函数
- stack栈
- 栈 Stack
- STACK 栈
- 栈(stack)
- 栈 Stack
- 栈stack
- stack栈
- stack栈
- [SDOI2009]虔诚的墓主人
- SSM框架整合教程(Spring+SpringMVC+MyBatis)
- 微博 Qzone 微信 JAVA多线程和并发
- moudle_param_call
- Python机器学习路线图
- 自定义栈Stack<T>
- [置顶] MT2503与SIM系列模块连接服务器区别比较
- 磁盘阵列RAID5工作原理
- ajax返回值显示为undefined
- 初始配置RaspberryPi Zero W(macOS Sierra 10.12.6环境下)
- 欢迎使用CSDN-markdown编辑器
- oj 光棍的悲伤
- Java中的一些重要概念
- 各有千秋,iFunk 旗下产品特点一览