背包、队列、栈

来源:互联网 发布: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
原创粉丝点击