栈和队列都是数据结构中最常见的结构,本篇我们使用java代码的方式实现栈和队列这两种数据结构。
一、栈
1、栈的特点
栈的特点是先入后出,这是因为栈的存取数据入口只有一个(用一个头指针实现)。故先入栈的元素放入栈底部,后入栈的元素放到栈顶部。向栈中存入一个元素的操作叫做压栈(push),从栈顶中取出一个元素的操作叫做弹栈(pop)。

2、栈的api设计
类名:Stack<T> (物理上基于链表)
构造方法: Stack()
成员方法:
public void push(T t) 向栈中放入一个元素
public T pop() 从栈中取出一个元素
public int size() 获取长度
public boolean isEmpty() 判断是否为空
3、栈的java代码实现
package com.tingcream.alg.linear;
import java.util.Iterator;
/**
* 栈的api设计 (物理上采用链表来实现栈)
*/
public class Stack<T> implements Iterable<T>{
private Node head;//头结点
private int N;//链表长度
//构造方法
public Stack(){
this.head=new Node(null,null);
this.N=0;
}
//压栈
public void push(T t){
//找到第一个节点
Node<T> oldFirst=head.next;
Node<T>

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



