JavaScript双方向チェーン操作例分析【作成、追加、検索、削除など】
3427 ワード
本論文の実例はJavaScript双方向チェーン動作を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
一つの双方向リンクテーブル(doubly linked list)は、ノードと呼ばれる一連の順序リンク記録からなるリンクデータ構造である。各ノードは、リンクと呼ばれる2つのフィールドを含み、それらは、ノードのシーケンスの中の前のノードと次のノードへの参照である。
開始ノードと終了ノードの前のリンクと次のリンクは、それぞれ何らかの終了ノードを指し、通常は前哨ノードまたはnullであり、リストを巡回するのに便利である。前哨ノードが一つしかない場合、リストは前哨ノードを介して循環的にリンクされます。同じデータ項からなる二つのシングルチェーンテーブルに概念化できるが、順序は逆である。
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「JavaScript数学演算の使い方のまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScript配列操作技術のまとめ」、「JavaScriptソートアルゴリズムのまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」、「JavaScript検索アルゴリズムのテクニックのまとめ」および「JavaScriptエラーとデバッグテクニックのまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。
一つの双方向リンクテーブル(doubly linked list)は、ノードと呼ばれる一連の順序リンク記録からなるリンクデータ構造である。各ノードは、リンクと呼ばれる2つのフィールドを含み、それらは、ノードのシーケンスの中の前のノードと次のノードへの参照である。
開始ノードと終了ノードの前のリンクと次のリンクは、それぞれ何らかの終了ノードを指し、通常は前哨ノードまたはnullであり、リストを巡回するのに便利である。前哨ノードが一つしかない場合、リストは前哨ノードを介して循環的にリンクされます。同じデータ項からなる二つのシングルチェーンテーブルに概念化できるが、順序は逆である。
class DNode {
constructor(val) {
this.val = val;
this.prev = null;
this.next = null;
}
}
ノードを追加
function add(el) {
var currNode = this.head;
while (currNode.next != null) {
currNode = currNode.next;
}
var newNode = new DNode(el);
newNode.next = currNode.next;
currNode.next = newNode;
}
検索
function find(el) {
var currNode = this.head;
while (currNode && currNode.el != el) {
currNode = currNode.next;
}
return currNode;
}
挿入
function (newEl, oldEl) {
var newNode = new DNode(newEl);
var currNode = this.find(oldEl);
if (currNode) {
newNode.next = currNode.next;
newNode.prev = currNode;
currNode.next = newNode;
} else {
throw new Error(' !')
}
}
ディスプレイ
//
function () {
var currNode = this.head.next;
while (currNode) {
console.log(currNode.el);
currNode = currNode.next;
}
}
//
function () {
var currNode = this.head;
currNode = this.findLast();
while (currNode.prev != null) {
console(currNode.el);
currNode = currNode.prev;
}
}
削除
function (el) {
var currNode = this.find(el);
if (currNode && currNode.next != null) {
currNode.prev.next = currNode.next;
currNode.next.prev = currNode.prev;
currNode.next = null;
currNode.previous = null;
} else {
throw new Error(' ');
}
}
興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「JavaScript数学演算の使い方のまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScript配列操作技術のまとめ」、「JavaScriptソートアルゴリズムのまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」、「JavaScript検索アルゴリズムのテクニックのまとめ」および「JavaScriptエラーとデバッグテクニックのまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。