栈和队列

栈:栈这种数据结构的特点是后进先出(LIFO),这个特点被应用到了计算机领域的很多地方,例如编辑文档时的撤销键,函数的调用,括号的匹配等。栈的底层实现可以是数组(动态数组),可以是链表(如果是链表的话,如果链表的底层实现用的是头插法,那么现在栈出栈就可以直接删除第一个位置的元素了)。

public interface Stack<E> {
	public int getSize();
	public void push(E e);
	public E pop();
	public E peek();
	public boolean isEmpty();

}

队列:队列这种数据结构的特点是先进先出(FIFO)。队列在二叉树和图的遍历的时候会用到,队列如果不设置成循环队列的话,会有个浪费空间的现象,因为进队是尾指针向后走,出队列是头指针向后走。而循环队列就是浪费一个节点空间(因为如果不浪费这个空间的话,就无法判断内存是满了还是此时是空队列)。这个时候指针的移动就不简单的是++了,而是(tail+1)对队列长度取余。
(不是循环队列)此外,队列如果用链表实现的话(头插法),一定要有尾指针,因为如果没有尾指针的话,每次出队列都要循环找到最后一个元素是很费时的。

public interface Queue<E> {
	public int getSize() ;
	public boolean isEmpty();
	public void enQueue(E e);
	public E deQueue();
	public E firstQueue();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值