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の行列とスタック
キューの実装:
スタックの実装:
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();
}
}