
数据结构与算法
望月寄明
学习是件快乐的事情
展开
-
数据结构 js 实现avl平衡树
/** * 平衡二叉搜索树 avl */let alert = console.log;// console.log = () => {};class TreeNode { constructor(value, leftNode, rightNode) { this.value = value; this.leftNode = leftNode; this.rightNode = rightNode; }}/** * 1、创建 create(){}原创 2022-05-25 19:27:27 · 354 阅读 · 0 评论 -
数据结构 js 判断二叉树是不是一棵平衡树
/** * 判断一棵树是不是 avl平衡树 */const { tree } = require("./utils/BinarySearchTree");function isAvlTree(root) { if (root == undefined || root == null) { return { level: 0, isAvl: true, }; } let leftDelta = isAvlTree(root.leftNode);原创 2022-05-23 20:27:42 · 310 阅读 · 0 评论 -
数据结构 js 翻转二叉树
/** * 翻转二叉树 */const { tree } = require("./utils/BinarySearchTree");/** * 翻转树 */function reverseTree(root) { if (root == undefined || root == null) { return; } let queue = []; root.level = 1; queue.push(root); while (queue.length)原创 2022-05-23 20:25:36 · 595 阅读 · 0 评论 -
数据结构 js获取树的最大层次
/*** * 获取树的最大层级 */const { tree } = require("./utils/BinarySearchTree");/*** * 遍历方式获取树的最大层次 */function getTreeMaxLevel(root) { if (!root.leftNode && !root.rightNode) { return 1; } let maxLeftLevel = 0; if (root.leftNode) { m原创 2022-05-21 17:45:08 · 954 阅读 · 0 评论 -
数据结构 js获取树的最小层次
/*** * 获取树的最小层级 */const { tree } = require("./utils/BinarySearchTree");/** * 通过递归遍历的方式来获取最小层级 * */function getTreeMinLevel(root) { //表明是个叶子节点,就返回。 if (!root.leftNode && !root.rightNode) { return 1; } let leftLevel = Number.POS原创 2022-05-21 17:42:59 · 862 阅读 · 0 评论 -
数据结构 js 非递归形式的中序遍历
const { tree } = require("./utils/BinarySearchTree");//非递归形式的中序遍历//因为 console.log 会换行,不能将所有内容收集成一行。所以使用 str 来收集要打印的内容。/** * 进行 */let stack = [];function InOrderDisplayByStack(root, str = "") { if (root == undefined || root == null) { return原创 2022-05-21 15:06:15 · 162 阅读 · 0 评论 -
数据结构 js 实现层序遍历
const { tree } = require("./utils/BinarySearchTree");function levelOrderDisplay(root, str = "") { if (root == undefined || root == null) { return ""; } let queue = []; queue.push(root); //定义一个队列,将元素按照层级进入队列,出队列;当队列为空时,树的遍历完成。 while (queu原创 2022-05-21 10:27:52 · 524 阅读 · 0 评论 -
数据结构 js 实现递归后序遍历
const { tree } = require("./utils/BinarySearchTree");//中序遍历//因为 console.log 会换行,不能将所有内容收集成一行。所以使用 str 来收集要打印的内容。function InOrderDisplay(root, str = "") { if (root == undefined || root == null) { return ""; } //判断是否存在左子树,存在则递归左子树。 if (root.原创 2022-05-21 10:16:37 · 209 阅读 · 0 评论 -
数据结构 js 实现递归前序遍历
const { tree } = require("./utils/BinarySearchTree");//中序遍历//因为 console.log 会换行,不能将所有内容收集成一行。所以使用 str 来收集要打印的内容。function InOrderDisplay(root, str = "") { if (root == undefined || root == null) { return ""; } //判断是否存在左子树,存在则递归左子树。 if (root.原创 2022-05-21 10:15:54 · 215 阅读 · 0 评论 -
数据结构 js 实现递归中序遍历
BinarySearchTree 的内容来自于二叉查找树文章的代码。const { tree } = require("./utils/BinarySearchTree");//中序遍历//因为 console.log 会换行,不能将所有内容收集成一行。所以使用 str 来收集要打印的内容。function InOrderDisplay(root, str = "") { if (root == undefined || root == null) { return ""; }原创 2022-05-21 10:14:18 · 181 阅读 · 0 评论 -
数据结构 js实现二叉查找树
二叉查找树二叉查找树(BST), 又叫做二叉排序树,二叉搜索树,是一种对查找和排序都有用的特殊二叉树。二叉查找树或者空树,或者满足下面三个性质:1、若其左子树非空,则左子树上所有结点的值都小于根节点的值。2、若其右子树非空,则右子树上所有结点的值都大于根节点的值。3、其左右子树都是一棵二叉查找树。二叉查找树的特性:左子树 < 根 < 右子树, 即二叉查找树的中序遍历是一个递增序列。二叉查找树的查询因为二叉查找树的中序遍历有序性,即得到的递增的序列,由于有序,查找与二分查找类似,原创 2022-05-21 09:44:14 · 717 阅读 · 0 评论 -
数据结构 -js 实现选择排序
仅仅提供代码实现,原理请问度娘。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let原创 2022-05-18 15:18:48 · 138 阅读 · 0 评论 -
数据结构 -js 实现基数排序
仅仅提供代码实现,原理请问度娘。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let原创 2022-05-18 15:17:58 · 260 阅读 · 0 评论 -
数据结构 -js 实现快速排序
仅仅提供代码实现,原理请问度娘。快速排序是冒泡排序的升级版本,每次都确定一个数的排序后的位置。且将数组进行分治处理。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module原创 2022-05-18 15:17:00 · 220 阅读 · 0 评论 -
数据结构 -js 实现归并排序
仅仅提供代码实现,原理请问度娘。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let原创 2022-05-18 15:15:27 · 165 阅读 · 0 评论 -
数据结构 -js 实现插入排序
仅仅提供代码实现,原理请问度娘。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let原创 2022-05-18 15:14:24 · 311 阅读 · 0 评论 -
数据结构 -js 实现堆排序
1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let str = ""; for (原创 2022-05-18 15:13:31 · 268 阅读 · 0 评论 -
数据结构 -js 实现计数排序
仅仅提供代码实现,原理请问度娘。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let原创 2022-05-18 15:12:26 · 312 阅读 · 0 评论 -
数据结构 -js 实现桶排序
仅仅提供代码实现,原理请问度娘。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let原创 2022-05-18 15:11:24 · 196 阅读 · 0 评论 -
数据结构 -js 实现冒泡排序
仅仅提供代码实现,原理请问度娘。1、 数据和工具类module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34];module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp;};module.exports.display = function (list) { let原创 2022-05-18 15:09:56 · 152 阅读 · 0 评论