Android開発データ構造理解キューとスタック分析及び実現

5370 ワード

キューは(先入先出)のデータ構造で、スタック(先進後出)のデータを結びました.
 
JDK提供の集合類を振り返る.
容器(集合)のフレームは以下の通りです.
集合類はjava.utilカバンの中に保管されています.集合クラスに格納されているのは、オブジェクト自体ではなくオブジェクトの参照です.
セットタイプは主に3種類あります.set(セット)、list(リスト)、map(マッピング).
Collectionインターフェース
_;Listインターフェース
_;LinkdListチェーン
_;ArayListの順序構造の動的配列のクラスをジャンプします.
蓣Vectorベクトルをジャンプします.
蓣Stckスタックにジャンプする.
Mapインターフェース
├hashtable
├hashMap
蛸セットインターフェース
Collection<--Set<--HashSet>
Collection<--Set<--HashSet>--Linked HashSet
Collection<--Set<--SortedSet(インターフェースでもあります)<--TreeSet
Linked List 二重端行列
 
私たちは基礎を実現します. Linked Listの行列とスタック
キューの実装:
import java.util.LinkedList;
import java.util.Queue;

public class MyQueue<T> {
private Queue<T> storage = new LinkedList<T>();

/** */
public void offer(T v) {
storage.offer(v);
}

/** , , , null */
public T peek() {
return storage.peek();
}

/***/
/** peek , , */
public T element() {
return storage.element();
}

/** , , null */
public T poll() {
return storage.poll();
}

/** */
/** poll , , */
public T remove() {
return storage.remove();
}

/** */
public boolean empty() {
return storage.isEmpty();
}

/** */
public String toString() {
return storage.toString();
}
}
 
スタックの実装:
import java.util.LinkedList;

public class Stack<T> {
private LinkedList<T> storage = new LinkedList<T>();

/** */
public void push(T v) {
storage.addFirst(v);
}

/***/
public T peek() {
return storage.getFirst();
}

/** */
public T pop() {
return storage.removeFirst();
}

/** */
public boolean empty() {
return storage.isEmpty();
}

/** */
public String toString() {
return storage.toString();
}
}