PHP は二重リンク リストとスタックを実装し、C 言語は二重リンク リストを実装します
初期の頃に、PHP による一方向リンク リストの実装と一方向リンク リストのソートに関する記事を書きました: http:/ /www.cnblogs.com/yydcdut/p/3777760.html。二重リンク リストについては以前に書きましたので、もう一度触れます: http://www.cnblogs.com/yydcdut/p/3782661.html。
今回は二重リンクリストとスタックの実装をシェアさせていただきます。コードは以前書いたものですが、PHPで書いたコードはわかりやすいと思いました!
ダブルリンクリスト
リーリー
ダブルリンクリスト挿入操作図:
リーリー
if
($cur->次!=null)
$cur->次->前=$cur->前;
$cur->前>次=$cur->次;
スタック
リーリー
私は天の王と地上の虎の境界線です
「リンクリストの PHP 実装」ポータル: http://www.cnblogs.com/yydcdut/p/3777760.html
転載元を示してください: 転載元を示してください: http://www.cnblogs.com/yydcdut
二重リンクリストを使用して Java でスタックをシミュレートする
里只
实现了Stack
部分機能
public class Stack{
private Node top;
public Stack(){
this.top = null;
}
public void Push(Node node){
if (node == null)
return;
if(this.top == null){
this.top = node;
node.setNext(null);
node.setPre(null);
}
else{
this .top.setNext(node);
node.setPre(this.top);
node.setNext(null);
this.top = node;
}
}
public Node Pop(){
if(this. top == null)
return null;
ノード curr = this.top;
ノード pre = curr.getPre();
pre.setNext(null);
this.top = pre;
return curr;
}
public Node top(){
return this.top;
}
public boolean isEmpty(){
return this.top == null ? true : false;
}
public void empty(){
this.top = null;
}
public static void main(String[] args){
Stack stack = new Stack();
Node n1 = newノード (1);
ノード n2 = 新しいノード (2);
ノード n3 = 新しいノード (3);
System.out.println(stack.isEmpty());
stack.push(n1);
システム.out.println(stack.top().getValue());
stack.push(n2);
stack.push(n3);
System.out.println(stack.pop().getValue());
stack.empty();
}
}
class Node {
private int value;
private Node next;
private Node pre;
public Node(int value, Node next, Node pre){
this.value = 値;
this.next = next;
this.pre = pre;
}
public Node(int value){
this.value = value;
this.next = null;
this.pre = null;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public Node getPre() {
return pre;
}
public void setPre(Node pre) {
this.pre = pre;
}
}
スタックまたはキュー
データには、キューを実装するために組み込み配列を使用する
よりも
を保持するコンテナが必要です
すべての要素が
移動されます
ビット
新しい要素が挿入されます
(
実装効率が比較的低い場合)
コンテナ選択
リンクリスト
その後、エンキュー操作
は次のように実装されます:
構築
チェーンノード
(
C
の構造)
キューに追加される
要素が入力される
新しいノード
リンク リストを再利用する
挿入操作
新しいノードがリンク リストに挿入される
スタックまたはキューを実装するために使用されるリンク リスト
データを保持する
コンテナがリンク リストとして選択されます
リンク リスト
を使用してノードの挿入とノードを削除し、スタックとキューを実装する
対応する操作
を使用する場合よりも
キューを実装するリスト
C
書き込み
次のいくつかの
関数
//enqueue
void insert (キューへのポインタ(リンクリスト)
ポインタ
要素)
//dequeue
void delete (キューへのポインター (リンクされたリスト)
);
http://www.bkjia.com/PHPjc/827942.html
www.bkjia.com本当http://www.bkjia.com/PHPjc/827942.html技術記事 PHP は二重リンク リストとスタックを実装し、C 言語は二重リンク リストを実装します。初期の頃に、PHP による一方向リンク リストの実装とポータルの一方向ソートに関する記事を書きました。 .com/yydc...