JavaScript数据结构
文章平均质量分 70
谁是世界上最美丽的语言?
热爱生活、热爱编程、热爱技术
展开
-
二叉排序树,看完你就会了
二叉排序树又称“二叉搜索树”,是一种左子树比根结点小,右子树比根结点大的特殊二叉树的形式;因为其排序的特殊性,所以在查找某个结点的时候可以遵循某种规律,因此其查找算法相较普通的二叉树效率高的不止一点点;而实际开发中使用了二叉树这种数据结构的,大部分都是二叉排序树,因此掌握它,尤为重要!一、认识二叉排序树二叉排序树,需要左子树小于根结点,右子树大于根结点,很显然上面两图都不满足条件。来看看下面这张图,没错,他就是二叉排序树:二、初始化二叉排序树仔细观察二叉排序树的结构...原创 2021-08-15 00:33:33 · 3356 阅读 · 1 评论 -
数据结构之二叉树创建及遍历
二叉树是一种比较特殊的树型数据结构,这一次来学习一下如何递归创建二叉树,以及如何递归遍历二叉树,同时最后以前序遍历为例子,非递归遍历二叉树。要写出代码来,要心中有数,二叉树的结构相较于前面的链表、队列、栈要相对复杂,所以,在没底的时候多画图来理解。...原创 2021-08-12 13:36:09 · 403 阅读 · 0 评论 -
数据结构-教你手写Hash表
哈希表(Hash)又称“散列表”,在JavaScript中对象字面量的实现就是基于哈希表,哈希表是一种算法简单、性能优越的一种查找算法。以JavaScript对象字面量为例:比如: 'name':'chn' 这一个键值对属性想插入对象中,首先需要根据键name计算出其对应的一个“编号”,而这个编号就是后面需要查找的地址编号,所以这个编号如何获取就比较的重要;当然有很多种办法,比如比较常用的根据字符的ASCII码进行相加得到一个编号;例如 'name' ASCII码相加就是:110+97+109+101=原创 2021-08-09 00:15:31 · 1007 阅读 · 1 评论 -
JavaScript数据结构之双向链表,C语言也适用!
双向链表又称“双向循环链表”,相较于单链表,双向链表增加了一个指向前面一个结点的指针,链表内的结点不会存在NULL结点,文章有点长,但是干货满满,希望你能看完。目录一、初识双向链表二、双向链表初始化三、添加结点3.1头插法3.2尾插法3.3指定位置插入四、删除结点4.1删除指定位置结点4.2删除整表五、获取结点附:完整源码:一、初识双向链表在双向链表中,每个结点都有两个指针域(prior和next)和一个数据域(data),第一个结点称”头结...原创 2021-07-27 13:36:45 · 423 阅读 · 0 评论 -
JavaScript数据结构之链表
链表是数据结构中最简单也是最常提及的一种数据结构了,不同于数组,在链表里面所有的结点数据内存都是不连续的,这就要求在访问链表的时候只能从头一个一个去访问,同时正是由于这个特性,链表可以动态分配内存空间,在性能上,链表远胜数组,这也是为什么在处理大型数据的时候,大多数都使用链表而不是数组。接下来我将介绍几种链表常用方法,概念不多介绍,直接上代码!*文章最后附源码一、初始化准备阶段function LinkList(){ this.head=null; //初始化头结点为空原创 2021-07-24 13:43:39 · 142 阅读 · 1 评论 -
JavaScript实现优先队列
首先先来阐述下什么是优先队列?普通的队列就是遵循先进先出(FIFO),不管你是谁,你来了都得往后面排队,先排队的可以先出去。在优先队列中,每个元素都拥有一个优先级属性,优先级高的排在前面,优先级低的排在后面,同样优先级高的元素可以享受优先出队,这就是优先队列。elem 6 3 2 8 1 priority(优先级) 4 2 1 5 3 普通队列顺序:6、3、2、8、1优先队列顺序:2、3、1、6、8 (数字越原创 2021-07-22 11:25:28 · 247 阅读 · 3 评论