线性表是“所有元素排成一行”的数据结构。线性表有顺序存储和链式存储两种实现方式。
而栈与队列是两种特殊的常用的线性表。
1、栈
栈是后进后出(LILO)的线性表、只能从栈顶插入或取出。
栈有6种基本操作:1、清空clear();2、判空isEmpty();3、求栈的长度length();4、取栈顶元素peek();5、压栈push();6、出展pop();
栈的抽象数据类型描述
public interface IStack {
public void clear(); // 将一个已经存在的栈置成空
public boolean isEmpty(); // 测试栈是否为空
public int length();// 求栈中的数据元素个数并由函数返回其值
public Object peek();// 查看栈顶对象而不移除它,返回栈顶对象
public Object pop();// 移除栈顶对象并作为此函数的值返回该对象
public void push(Object o) throws Exception;// 把项压入栈顶
public void display();// 打印函数,打印所有栈中的元素(栈底到栈顶)
}
2、队列
队列是先进先出(FIFO)的线性表,只能从队首取出,从队尾插入。
队列有6种基本操作:1、清空clear();2、判空isEmpty();3、求队列的长度length();4、取队首元素peek();5、入队offer();6、出队poll();
队列的抽象数据类型描述
public interface IQueue {
public void clear(); // 将一个已经存在的队列置成空
public boolean isEmpty(); // 测试队列是否为空
public int length();// 求队列中的数据元素个数并由函数返回其值
public Object peek();// 查看队列的头而不移除它,返回队列顶对象,如果此队列为空,则返回 null
public Object poll();// 移除队列的头并作为此函数的值返回该对象,如果此队列为空,则返回 null
public void offer(Object o) throws Exception;// 把指定的元素插入队列
public void display();// 打印函数,打印所有队列中的元素(队列头到队列尾)
}