From 1263a264e8ce2f1f57ab59b815c7dbeab91a7892 Mon Sep 17 00:00:00 2001 From: linghuam <1551827898@qq.com> Date: Tue, 21 May 2019 10:09:51 +0800 Subject: [PATCH] =?UTF-8?q?add:=20b00-=E9=98=85=E8=AF=BB=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../学习js数据结构与算法}/学习js数据结构与算法.js | 0 .../学习js数据结构与算法}/学习js数据结构与算法.md | 36 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) rename {b03-数据结构与算法 => b00-阅读笔记/学习js数据结构与算法}/学习js数据结构与算法.js (100%) rename {b03-数据结构与算法 => b00-阅读笔记/学习js数据结构与算法}/学习js数据结构与算法.md (93%) diff --git a/b03-数据结构与算法/学习js数据结构与算法.js b/b00-阅读笔记/学习js数据结构与算法/学习js数据结构与算法.js similarity index 100% rename from b03-数据结构与算法/学习js数据结构与算法.js rename to b00-阅读笔记/学习js数据结构与算法/学习js数据结构与算法.js diff --git a/b03-数据结构与算法/学习js数据结构与算法.md b/b00-阅读笔记/学习js数据结构与算法/学习js数据结构与算法.md similarity index 93% rename from b03-数据结构与算法/学习js数据结构与算法.md rename to b00-阅读笔记/学习js数据结构与算法/学习js数据结构与算法.md index 0cc5f1f..3147807 100644 --- a/b03-数据结构与算法/学习js数据结构与算法.md +++ b/b00-阅读笔记/学习js数据结构与算法/学习js数据结构与算法.md @@ -295,6 +295,27 @@ function traveseTree(root, callback) { } ``` +#### 层次遍历(利用队列实现) + +1. 根节点入队 +2. 出队 +3. 如果有左孩子,左孩子入队;如果有右孩子,右孩子入队。 +4. 重复步骤2、3,直到队列为空。 + +```js +function traveseTree(root, callback) { + var queue = []; + if (root == null) return null; + queue.push(root); + while(queue.length) { + var frontNode = queue.shift(); + callback(frontNode); + if (frontNode.left) queue.push(frontNode.left); + if (frontNode.right) queue.push(frontNode.right); + } +} +``` + ### 树的查找 * 最小值:左子树最下边 @@ -346,4 +367,17 @@ function removeNode(node, value) { return node; } } -``` \ No newline at end of file +``` + +### 其他扩展 + +* 红黑树 +* AVL平衡二叉搜索树 + +## 图 + +## 排序和搜索算法 + +## 算法补充知识 + +## 时间复杂度速查表 \ No newline at end of file