Java学习-栈(1)--实现斐波那契序列

栈说明:  

  是一种先进后出的数据结构,只能在一端进行输入或者输出。向栈中输出称为入栈,从栈中输出称为出栈。由于栈总是在顶端进行输入输出操作,因此出栈总是输出最后压入栈的数据。

栈使用方法:

    Java中的Stack类表示后进先出(LIFO)的对象栈。可以采用java.util包中的stack<E>泛型类创建一个栈对象。常见操作如下:

1、public Stack()

创建一个空Stack

2、public E push(E item)

将item项入栈

3、public E pop()

移除栈顶对象,并作为此函数的值返回该对象

4、public E peek()

获取栈顶端的数据,但是不移除该数据

5、public boolean empty()

测试栈中是否还有数据,有数据返回false,否则返回true

6、public int search(Object o)

获取数据在栈中的位置,最顶端的位置是1,向下依次增加,如果栈中不含有此数据,则返回-1

举例:

    斐波那契序列 1 1 2 3 5 8 ...

package org.chisj.stack;

import java.util.Stack;

public class statckTest {

	public static void main(String[] args) {
		
		// 栈:先进后出,后进先出(LIFO)
		Stack<Integer> iStack = new Stack<Integer>(); //实例化一个存储Integer类型对象的栈对象
		
		iStack.push(0); //入栈
		iStack.push(1);
		
		for (int i = 0; i < 5; i++) {
			
			int f2 = iStack.pop(); //出栈
			int f1 = iStack.pop();
			
			int tmp = f1 + f2;
			
			iStack.push(f1);
			iStack.push(f2);
			iStack.push(tmp);
			
		}
		
		while (!iStack.empty()) { //判断栈是否为空
			System.out.println(iStack); //打印栈里面的数据
			iStack.pop();
		}
		
		//取栈顶端的数据,但是不移除该数据
		//public E peek()
		
		//获取数据在栈中的位置,最顶端的位置是1,向下一次增加,如果没有找到返回-1
		//public int search(Object o)
	}
	
}

测试结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值