使用数组和链表实现栈
来源:互联网 发布:淘宝流量钱包兑换 编辑:程序博客网 时间:2024/06/11 04:53
栈数据结构中常用的模型,以下分别使用数组和链表实现堆栈。
import java.util.Iterator;/** * Created by wang on 16-12-18. */public class ResizingArrayStack<Item> implements Iterable<Item> { private Item[] a = (Item[]) new Object[1]; private int N = 0; public boolean isEmpty() { return N == 0; } public int size() { return N; } private void resize(int max) { Item[] temp = (Item[]) new Object[max]; for (int i = 0; i < N; i++) temp[i] = a[i]; a = temp; } public void push(Item item) { if (N == a.length) resize(2 * a.length); a[N++] = item; } public Item pop() { Item item = a[--N]; a[N] = null; if (N > 0 && N == a.length / 4) resize(a.length / 2); return item; } @Override public Iterator<Item> iterator() { return new ReverseArrayIterator(); } private class ReverseArrayIterator implements Iterator<Item> { private int i = N; @Override public boolean hasNext() { return i > 0; } @Override public Item next() { return a[--i]; } }}
import java.util.Iterator;/** * Created by wang on 16-12-18. */public class LinkedListStack<Item> implements Iterable<Item> { private Node first; private int N; private class Node { Item item; Node next; } public boolean isEmpty() { return first == null; } public int size() { return N; } public void push(Item item) { Node oldfirst = first; first = new Node(); first.item = item; first.next = oldfirst; N++; } public Item pop() { Item item = first.item; first = first.next; N--; return item; } @Override public Iterator<Item> iterator() { return new LinkedListStackIterator(); } private class LinkedListStackIterator implements Iterator<Item> { private Node current = first; @Override public boolean hasNext() { return current != null; } @Override public Item next() { Item item = current.item; current = current.next; return item; } }}
0 0
- 使用数组和链表实现栈
- C 数据结构使用数组和链表实现栈
- 使用数组和范型来实现栈结构?
- 使用数组和底层容器实现栈
- Java栈实现:数组实现和链表实现
- 栈的数组和链表实现
- 栈的数组和链表实现
- 使用数组实现链表
- 使用数组实现栈
- 使用数组实现栈
- 栈和队列的基本实现(数组实现和链表实现)
- 使用数组实现栈和循环队列(JAVA语言)
- C++实现队列--数组实现和链表实现
- C++实现队列--数组实现和链表实现
- 基于数组和链表的栈实现
- 分别用数组和链表实现栈
- 栈的实现——链表和数组
- 栈的C语言实现(链表和数组)
- Java数组(3)
- Redis哈希类型的操作
- Android Studio精彩案例(五)《JSMS短信验证码功能实现》
- Swap Nodes in Pairs
- 模拟搭建Web项目的真实运行环境(六)
- 使用数组和链表实现栈
- (转)对冲基金经理已OUT,匿名交易模型程序员崛起!
- 216. Combination Sum III
- 【Centos7】安装mongodb 使用yum源
- IntelliJ快速补全for循环:fori
- 面向对象(一)
- 石子合并 最大值
- 强制类型转换注意问题
- 1.3 网络基础TCP/IP