1. 程式人生 > >初始資料結構——順序棧

初始資料結構——順序棧

棧是一種只允許在一端進行插入和刪除的線性表
後進先出(LIFO)表

棧的順序儲存
判空、入棧、出棧、取棧頂

public class MyStack
{
	final int MAXSIZE = 10; //棧的最大元素數

	private class SeqStack{
		char[] data = new char[MAXSIZE];
		int top;
		SeqStack() {
			top = -1;
		}
	}
	
	SeqStack s = new SeqStack();
	
	//判空棧
	public boolean isEmpty() {
		if(s.top == -1) return true;
		return false;
	}
	
	//入棧
	public boolean push(char data) {
		if(s.top == MAXSIZE - 1) return false; //棧滿不能入棧
		else {
			s.top++;
			s.data[s.top] = data;
			return true;
		}
	}
	
	//出棧
	public boolean pop() {
		if(isEmpty() == true) return false; //棧空不能出棧
		else {
			s.top--;
			return true;
		}
	}
	
	//取棧頂元素
	public char getTop() {
		if(isEmpty() == true) return 0;
		else {
			return s.data[s.top];
		}
	}

}