数据结构-------栈

一、什么是栈

其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

栈是先进后出

java代码实现

package zhan;
/**
 * 
 * @author asus
 *这是一个由数组构建的栈
 *栈的特点:先进后出   
 *
 */
public class ShuZu {
	private Object[] data=null;
	private int size=0;//栈的最大容量
	private int top =-1;//栈顶指针  当为-1的时候表示栈元素
	//普通的构造方法  默认创建一个容量为10的数组
	public ShuZu(){
		this(10);
	}
	/**
	* 构造函数:根据给定的size初始化栈
	*/
	public ShuZu(int size){
		this.size=size;
		data=new Object[size];
		top=-1;
	}
	//判空
	public boolean isEmpty(){
		if(top==-1){
			return true;
		}
		return false;
	}
	//进栈,第一个元素top=0;
	public void push(Object obj){
		if(top==size-1){
			System.out.println("栈满了");
		}else{
			data[++top]=obj;
			
		}
	}
	//查看栈顶元素但不移除
	public void del(){
		if(top==-1){
			System.out.println("栈为空");
		}else{
			System.out.println(data[top]);
		}
	}
	//弹出栈顶元素
	public void tan(){
		if(top==-1){
			System.out.println("栈位空");
		}
		System.out.println(data[top--]);
		
	}
	//返回对象在堆栈中的位置,以 1 为基数
	public int index(Object obj){
		int index=0;
		for(int i=0;i<=top;i++){
			if(data[i].equals(obj)){
				index=i+1;
			}
		}
		return index;
	}
	public static void main(String[] args) {
		ShuZu shuZu=new ShuZu(12);
	System.out.println(	shuZu.isEmpty());
	shuZu.push("1");
	shuZu.push("2");
	shuZu.push("3");
	System.out.println(shuZu.top);
	int index = shuZu.index("3");
	System.out.println(index);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值