数据结构(四)---栈的顺序存储的实现---java版

本文介绍了一个栈的数据结构接口定义及顺序栈的具体实现,包括栈的基本操作如入栈、出栈、获取栈顶元素等,并提供了一个简单的测试案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--------------------------------------------------------------------------栈的接口定义--------------------------------------------

package com.cn.hbut.dao;



/**
 * @author Administrator
 * description:
 * 栈的接口定义
 */
public interface Stacks {

public void clear();
public int length();
public boolean full();
public boolean empty();
//把元素e入栈
public boolean pushs(Object e);
//出栈
public Object pops();
//获取栈顶元素
public Object getTop();



}


--------------------------------------------------------------------------栈的具体实现----------------------------------------------------------------

package com.cn.hbut.daoImpl;


import com.cn.hbut.dao.Stacks;


/**
 * @author Administrator
 * description:
 * 顺序栈的具体实现
 */
public class SqStack implements Stacks{
Object []elem;
int top;
int maxlen;
//默认的初始大小
public SqStack() {
top=-1;
maxlen=10;
elem=new Object[maxlen];
}


//自定义栈的大小
public SqStack(int maxlen) {
this.top = -1;
this.maxlen = maxlen;
elem=new Object[maxlen];
}


@Override
public void clear() {
top=-1;
}


@Override
public int length() {

return top+1;
}


@Override
public boolean full() {

return top>=maxlen-1;
}


@Override
public boolean empty() {

return top==-1;
}
//入栈元素e
@Override
public boolean pushs(Object e) {
if (full())
return false;
top++;
elem[top]=e;
return true;
}
//弹出一个元素
@Override
public Object pops() {
if(empty())
return null;
Object obj=elem[top];
top--;
return obj;
}
//获取栈顶元素
@Override
public Object getTop() {
if(empty())
return null;
Object obj=elem[top];
return obj;
}

//-----------------------测试顺序栈-------------------
public static void main(String[] args) {
SqStack stack = new SqStack(5);
stack.pushs(5);
stack.pushs(3);
System.out.println("当前出栈的元素为:"+stack.pops());
System.out.println("栈顶的元素为:"+stack.getTop());
System.out.println("栈是否为空"+stack.full());

}


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值