算法(第四版)之 --栈

2021/12/22 20:20:07

本文主要是介绍算法(第四版)之 --栈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

栈:是一种基于后进先出(LIFO)策略的集合类型
用数组实现栈:

public class Stack<Item>{
	pirvate int n=0;
	private Item []data=new Item[1];
	public boolean isEmpty(){
		return n==0;
	};
	public int size(){
		return n;
	};
	
	public void reSize(int max){
		Item []a=new Item[max];
		for(int i=0;i<data.length;i++){
		a[i]=data[i];
		}
		data=a;
	};
	public void push(Item item){
		if(n==data.length){
			reSize(2*data.length);
		}
		data[n++]=item;
	};
	public Item pop(){
		Item item=data[n--];
		a[n]=null;
		if(n>0&&n=data.length/4){
			reSize(data.length/2);
		}
		return item
	};
}

链表实现栈:

public class Stack<Item>{
	private int n;
	private Node first;
	class Node{
		Item item;
		Node next;
	}
	public boolean isEmpty(){
		return n==0;
	};
	public int size(){
		return n;
	};
	public void push(){
		Node node=first;
		first=new Node();
		first.next=node;
		first.item=Item;
		n++;
	}
	public Item pop(){
		Item item=first.item;
		first=first.next;
		n--;
		return item;
	}
}


这篇关于算法(第四版)之 --栈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程