背包、队列、栈
来源:互联网 发布:ipcam监控软件下载 编辑:程序博客网 时间:2024/05/21 11:07
一、定容栈
public class FixedCapacityStackOfStrings {private String[] a;private int N;public FixedCapacityStackOfStrings(int cap){a = new String[cap]; }public void push(String item){a[N++] = item;}public String pop(){return a[--N]; }public boolean isEmpty(){return N == 0;}public int size(){return N;}}二、泛型定容栈:
public class FixedCapacityStackOfStrings<Item> {private Item[] a;private int N;public FixedCapacityStackOfStrings(int cap){a = (Item[])new Object[cap]; }public void push(Item item){a[N++] = item;}public Item pop(){return a[--N]; }public boolean isEmpty(){return N == 0;}public int size(){return N;}}三、下压栈:
import java.util.Iterator;public class ResizingArrayStack<Item> implements Iterable<Item> {private Item[] a = (Item[])new Object[1];private int N;public 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(a.length * 2); 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;}public boolean isEmpty(){return N == 0;}public int size(){return N;}@Overridepublic java.util.Iterator<Item> iterator(){// TODO Auto-generated method stubreturn new ReverseArrayIterator();}private class ReverseArrayIterator implements Iterator<Item>{private int i = N;@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn i > 0;}@Overridepublic Item next() {// TODO Auto-generated method stubreturn a[--i];}@Overridepublic void remove() {// TODO Auto-generated method stub}}}
四、下压堆栈(链表实现):
import java.util.Iterator;public class Stack<Item> implements Iterable<Item>{private Node first;private int N;private class Node{Item item;Node next;}public boolean isEmpty(){return N == 0;}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;}@Overridepublic Iterator<Item> iterator() {// TODO Auto-generated method stubreturn new ListIterator();}private class ListIterator implements Iterator<Item>{private Node current = first;@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn current != null;}@Overridepublic Item next() {Item item = current.item;current = current.next;// TODO Auto-generated method stubreturn item;}@Overridepublic void remove(){// TODO Auto-generated method stub}}}五、先进先出队列:
import java.util.Iterator;public class Queue<Item> implements Iterable<Item>{private Node first;private Node last;private int N;private class Node{Item item;Node next;}public boolean isEmpty(){return first == null;}public int size(){return N;}public void enqueue(Item item){Node oldlast = last;last = new Node();last.item = item;last.next = null;if (isEmpty()) first = last;elseoldlast.next = last;N ++;}public Item dequeue(){Item item = first.item;first = first.next;if (isEmpty()) last = null;N --;return item;}@Overridepublic Iterator<Item> iterator() {// TODO Auto-generated method stubreturn new ListIterator();}private class ListIterator implements Iterator<Item>{private Node current = first;@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn current != null;}@Overridepublic Item next() {Item item = current.item;current = current.next;// TODO Auto-generated method stubreturn item;}@Overridepublic void remove(){// TODO Auto-generated method stub}}}六、背包:
import java.util.Iterator;public class Bag<Item> implements Iterable<Item>{private Node first;private int N;private class Node{Item item;Node next;}public boolean isEmpty(){return N == 0;}public int size(){return N;}public void add(Item item){Node oldfirst = first;first = new Node();first.item = item;first.next = oldfirst;N ++;}@Overridepublic Iterator<Item> iterator() {// TODO Auto-generated method stubreturn new ListIterator();}private class ListIterator implements Iterator<Item>{private Node current = first;@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn current != null;}@Overridepublic Item next() {Item item = current.item;current = current.next;// TODO Auto-generated method stubreturn item;}@Overridepublic void remove(){// TODO Auto-generated method stub}}}
0 0
- 背包、队列、栈
- 栈、队列与背包
- 背包、队列和栈
- 背包、队列和栈
- 基础数据结构--背包,队列,栈
- 1.2:背包,队列和栈
- 1.3背包,队列和栈
- 栈,队列和背包总结
- 1.3背包,队列和栈 (Part1 -- Exercises)
- 关于队列背包栈的认识
- 背包、队列、栈(附数据类型实现)
- 第一章 1.3背包、队列和栈
- YTU.2244: 背包问题(栈和队列)
- 队列优化多重背包
- 背包、栈和队列(集合类数据类型的实现)
- 一、算法第四版(二分查找、背包、队列、栈)
- 算法#07--背包、队列和栈(链表实现)
- 栈、队列、背包的数组与链表实现
- 朴树_且听风吟
- Android-基础-intent
- 【Java基础】线程和并发机制
- Java实现文本按照自然段落进行切分
- Map遍历
- 背包、队列、栈
- 悲壮的码字僧(研究生)艰辛写作路(PS:-学渣开启学霸模式)
- Struts2---类型转换
- Redis 学习之主从复制
- [LeetCode] Roman to Integer 解题报告
- Android-UI-绘制
- Android平台Native开发与JNI机制
- 求二叉树的先序遍历
- 如何进行Sublime Text插件的升级和卸载?