栈--java数据结构

Posted 旧时星空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈--java数据结构相关的知识,希望对你有一定的参考价值。

栈–java数据结构

栈的介绍:

1.栈的英文是stack

2.栈是一个先入后出的有序列表

3.栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一端称为栈底

4.根据栈的定义可知,最先放入栈的元素在栈底,最后放入栈的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。

通过数组模拟栈:

创建一个栈类,包括maxSize(最大存储容量),stack(数组),top(栈顶).

依次要实现构造器,判断栈满,判断栈空,入栈,出栈,遍历。

private int maxSize;
	private int[] stack;
	private int top=-1;
	public Stack(int maxSize) //构造器
		this.maxSize=maxSize;
		stack=new int[maxSize];
	
public boolean isEmpty() 
		return top==-1;
	
	public boolean isFull() 
		return top==maxSize-1;
	
public void Push(int value) 
		if(isFull()) 
			System.out.println("栈满,无法添加数据");
		
		top++;
		stack[top]=value;
	
	public int pull() 
		if(isEmpty()) 
			throw new RuntimeException("没有数据,栈为空");
		
		int a=stack[top];
		top--;
		return a;
	
public void show() 
		if(isEmpty()) 
			System.out.println("栈为空");
		
		for(int a=top;a >=0;a--) 
			System.out.printf("stack[%d]:%d \\n", a,stack[a]);
		
	

测试代码:

  Stack a=new Stack(5);
	   a.Push(12);
	   a.Push(13);
	   a.Push(2);
	   a.Push(6);
	   a.show();
	   System.out.println("----------");
	   a.pull();
	   a.pull();
	   a.show();


以上是关于栈--java数据结构的主要内容,如果未能解决你的问题,请参考以下文章

学习数据结构笔记=====>栈

java实现顺序栈

剑指offer05- 用两个栈实现队列(java)

Java数据结构与算法——栈

浅析栈与队列在java中的基本应用

“栈”(stack)