Java实现顺序栈的基本操作(泛型结构)
前言
用Java实现顺序栈的基本操作,采用泛型结构,可以适应更多场合运用,避免了上篇文章只是储存int类型的单链表的缺点。本文以String 和Integer为例简单介绍。作为知识的总结与理解
提示:以下是本篇文章正文内容。
一、基本实现思路
1. 构建栈(数组) 2. 实现栈的基本操作(进栈、出栈、取栈顶元素、显示栈内元素) 3. 具体实现测试
二、代码实现
1.构造栈、实现栈的基本操作
代码如下:
package stake; /* * 利用泛型数组储存实现栈的基本功能 */ public class Stake <T>{ private int count; private Object[] a; private int top; public Stake(int count) { super(); this.count = count; this.a =new Object [this.count]; this.top = -1; } /* * 进栈操作 */ public void pushStake(T elem) { if (count>0&&top<count-1) { a[++top]=elem; } else { System.out.println("当前栈满了!"); } } /* * 出栈操作 */ //这里有异常未解决 @SuppressWarnings("unchecked") public T putStake() { T elem; if (top>-1) { elem=(T) a[top--]; return elem; } else { System.out.println("当前栈为空!"); return null; } } /* * 取栈顶元素 */ public void referStake() { if (top>-1) { System.out.println(a[top]); } else { System.out.println("此栈为空!"); } } /* * 显示栈内当前元素的 */ public void display() { //判断栈是否为空 if (top==-1) { System.out.println("此栈为空!"); return; } for (int i = 0; i <= top; i++) { System.out.println(a[i]); } } }
2.具体实例测试代码
1、String类实现
代码如下:
package stake; /* * 定义String类型的栈stake */ public class StringTest { public static void main(String[] args) { // TODO Auto-generated method stub //实例化对象 Stake <String> stake=new Stake<>(3); //进栈操作 stake.pushStake("aaa"); stake.pushStake("bbb"); stake.pushStake("ccc"); System.out.println("显示当前栈内元素"); stake.display(); //进栈 栈满提示 stake.pushStake("ddd"); System.out.println("显示栈顶元素"); stake.referStake(); System.out.println("显示出栈元素"); //连续出栈 System.out.println(stake.putStake()); stake.putStake(); stake.putStake(); System.out.println("显示当前栈的情况"); stake.display(); } }
结果如下:
2、Integer类实现
代码如下:
package stake; /* * 定义Integer类型的栈stake */ public class IntTest { public static void main(String[] args) { // TODO Auto-generated method stub //实例化对象 Stake<Integer> stake=new Stake<>(3); stake.pushStake(1); stake.pushStake(2); stake.pushStake(3); System.out.println("显示当前栈内元素"); stake.display(); //进栈 栈满提示 stake.pushStake(4); System.out.println("显示栈顶元素"); stake.referStake(); System.out.println("显示出栈元素"); //连续出栈 System.out.println(stake.putStake()); stake.putStake(); stake.putStake(); System.out.println("显示当前栈的情况"); stake.display(); } }
结果如下:
总结
下一篇:
java实现十六进制转十进制