数据结构(四)---栈的顺序存储的实现---java版
--------------------------------------------------------------------------棧的接口定義--------------------------------------------
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();
}
--------------------------------------------------------------------------棧的具體實(shí)現(xiàn)----------------------------------------------------------------
package com.cn.hbut.daoImpl;
import com.cn.hbut.dao.Stacks;
/**
?* @author Administrator
?* description:
?* 順序棧的具體實(shí)現(xiàn)
?*/
public class SqStack implements Stacks{
Object []elem;
int top;
int maxlen;
//默認(rèn)的初始大小
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;
}
//彈出一個(gè)元素
@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;
}
//-----------------------測(cè)試順序棧-------------------
public static void main(String[] args) {
SqStack stack = new SqStack(5);
stack.pushs(5);
stack.pushs(3);
System.out.println("當(dāng)前出棧的元素為:"+stack.pops());
System.out.println("棧頂?shù)脑貫?"+stack.getTop());
System.out.println("棧是否為空"+stack.full());
}
}
總結(jié)
以上是生活随笔為你收集整理的数据结构(四)---栈的顺序存储的实现---java版的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据结构(三)---双向循环链表的实现-
- 下一篇: 数据结构(五)---栈的链式存储的实现-