我要用java实现一个栈,基本操作就是出栈入栈 。请问如何实现效率比较高 。//这是JDK提供的栈
import java.util.Stack;
public class UsingStack {
public static void main(String[] args) {
//构造栈对象java顺序栈的原代码,使用类型限制java顺序栈的原代码,只能存储Integer数据
StackInteger s = new StackInteger();
//1、2、3依次入栈
s.push(1);
s.push(2);
s.push(3);
//3、2、1依次出栈
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
}
}
//这是java顺序栈的原代码我写的顺序结构的栈
import java.util.EmptyStackException;
import java.util.Vector;
public class UsingStack{
public static void main(String[] args){
//构造栈对象 , 使用类型限制,只能存储Integer数据
MyStackInteger s = new MyStackInteger();
//1、2、3依次入栈
s.push(1);
s.push(2);
s.push(3);
//3、2、1依次出栈
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
}
}
/**
* 栈类
* @author developer_05
* @param T
*/
class MyStackT extends VectorT{
/**
* 构造方法
*/
public MyStack(){
}
/**
* 入栈方法
* @param item 待入栈的元素
* @return 返回入栈的元素
*/
public T push(T item) {
addElement(item);
return item;
}
/**
* 出栈方法(同步处理)
* @return 返回出栈元素
*/
public synchronized T pop() {
T obj;
int len = size();
if (len == 0)
throw new EmptyStackException();
obj = elementAt(len - 1);
removeElementAt(len - 1);
return obj;
}
/**
* 判断栈是否为空的方法
* @return 返回true(栈空)或false(栈非空)
*/
public boolean empty() {
return size() == 0;
}
private static final long serialVersionUID = 1L;
}
关于数据结构(java)的一个代码描述栈抽象数据类型java顺序栈的原代码的SStack接口的声明
public interfaceSStackE//栈接口
{
boolean isEmpty();//判断是否空栈,若空栈返回true
boolean push(E element);//元素element入栈,若操作成功返回true
E pop();//出栈,返回当前栈顶元素,若栈空返回null
E get();//取栈顶元素值,未出栈 , 若栈空返回null
}
顺序栈类具体操作方法的声明java顺序栈的原代码:
importdataStructure.linearList.SStack;
public classSeqStackE implements SStackE
//顺序栈类
{
private Object value[];//存储栈的数据元素
private int top;//top为栈顶元素下标
public SeqStack(int capacity)//构造指定容量的空栈
{
this.value = https://www.04ip.com/post/newObject[Math.abs(capacity)];
this.top=-1;
}
public SeqStack()//构造默认容量的空栈
{
this(10);
}
public boolean isEmpty()//判断是否空栈 , 若空栈返回true
{
return this.top==-1;
}
public boolean push(E element)//元素element入栈,若操作成功返回true
{
if (element==null)
return false;//空对象(null)不能入栈
if (this.top==value.length-1)//若栈满,则扩充容量
{
Object[] temp = this.value;
this.value = https://www.04ip.com/post/newObject[temp.length*2];
for (int i=0; itemp.length;i)
this.value[i] = temp[i];
}
this.top;
this.value[this.top] = element;
return true;
}
public E pop()//出栈,返回当前栈顶元素,若栈空返回null
{
if (!isEmpty())
return (E)this.value[this.top--];
else
return null;
}
public E get()//取栈顶元素值 , 未出栈,栈顶元素未改变
{
if (!isEmpty())
return (E)this.value[this.top];
else
return null;
}
public String toString()//返回栈中各元素的字符串描述
{
String str="{";
if (this.top!=-1)
str=this.value[this.top].toString();
for (int i=this.top-1; i=0; i--)
str= "," this.value[i].toString();
return str "} ";
}
实例引用public static void main(String args[])
{
SeqStackString stack = newSeqStackString(20);
System.out.print("Push: ");
char ch='a';
for(int i=0;i5;i)
{
String str =(char)(ch i) "";
stack.push(str);
System.out.print(str "");
}
System.out.println("\n" stack.toString());
System.out.print("Pop : ");
while(!stack.isEmpty())//全部出栈
System.out.print(stack.pop().toString() "");
System.out.println();
}
java用顺序栈实现数制转换 求完整程序?。?/h2>用顺序栈实现数制转换java顺序栈的原代码的Java程序如下:
import java.util.Scanner;
import java.util.Stack;
public class jinzhi3 {
public static void main(String arg[]){
Scanner y=new Scanner(System.in);
System.out.println("请输入十进制数");
int b=y.nextInt();
jinzhi3 j=new jinzhi3();
j.ErJinZhi(b);
j.BaJinZhi(b);
j.ShiLiuJinZhi(b);
}
//转化成二进制
void ErJinZhi(int a){
StackInteger s=new StackInteger();
String str="";
while(a0)
{
s.push(a%2);
a=a/2;
}
while(!s.isEmpty()){
str=str s.pop();
}
System.out.println("二进制是" str);
}
//转化成八进制
void BaJinZhi(int a){
StackInteger s=new StackInteger();
String str="";
while(a0)
{
s.push(a%8);
a=a/8;
}
while(!s.isEmpty()){
str=str s.pop();
}
System.out.println("八进制是" str);
}
//转化成十六进制
void ShiLiuJinZhi(int a){
int c=0;
String str="";
StackCharacter s=new StackCharacter();
while(a0)
{
c=a;
switch(c){
case(10):s.push('A');break;
case(11):s.push('B');break;
case(12):s.push('C');break;
case(13):s.push('D');break;
case(14):s.push('E');break;
case(15):s.push('F');break;
default:s.push((char)(a 48));
}
a=a/16;
}
while(!s.isEmpty()){
str=str s.pop();
}
System.out.println("十六进制是" str);
}
}
运行结果:
请输入十进制数
28
二进制是11100
八进制是34
十六进制是1C
【java顺序栈的原代码 顺序表代码java】关于java顺序栈的原代码和顺序表代码java的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 坦克世界配什么cpu好,坦克世界
- g31主板支持什么cpu,g31主板支持什么内存
- 登山赛车经典版下载游戏,登山赛车版本大全下载
- 函数小结python 函数小结20分钟微型课
- 怎么检测电脑硬盘好坏,如何检测电脑硬盘是好的
- 体育短跑游戏环节,短跑的体育游戏
- 软件毕业设计论文总结,软件毕业设计论文总结范文
- oracle如何按天 oracle 按日期查询
- oracle查询内置函数,怎么查看oracle内置函数代码