数据结构
文章平均质量分 88
主要基于Javascript实现一遍数据结构内容,包括栈、队列、链表、哈希表、树等
小牲口online
。
展开
-
数据结构(js实现)——图解二叉搜索树
文章目录1.概念2.二叉搜索树的封装以及常见操作3.插入操作的封装4.三种遍历方式封装4.1 先序遍历4.2 中序遍历4.3 后序遍历5.获取最大值和最小值6.搜索特定的值7.删除操作7.1 结点是叶子节点(没有子节点)7.2 删除的结点有一个子节点7.3 删除的结点有两个子节点8.结语1.概念二叉搜索树(BST),又称二叉排序树和二叉查找树。二叉搜索树是一颗二叉树,可以为空,如果不为空,则满足以下三个条件:非空左子树的所有键值小于根节点的键值非空右子树的所有键值大于根节点的键值左右子树本身原创 2021-03-10 22:55:30 · 873 阅读 · 3 评论 -
树结构认识篇
文章目录1.认识1.1树的特点:1.2 树的术语1.3 树的表示2.二叉树2.1二叉树的几个重要特性:2.2特殊的二叉树2.3二叉树的存储方式1.认识树也是一种很常用的数据结构树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。1.1树的特点:每个结点有零个或多个子结点没有父结点的结点称为根结点每一个非根结点有且只有一个父结点除了根结点外,每个子结点可以分为多个不相交的子树树结构是一种非线性存储结构,存储的是具有“一原创 2021-03-10 22:42:46 · 658 阅读 · 0 评论 -
数据结构(js实现)-Hash表(哈希表)
文章目录1.引入1.1 字母转数字1.2.哈希化2.地址冲突2.1 链地址法2.2 开放地址法2.2.1 线性探测(后面实现哈希表用此方法)2.2.2 二次探测2.2.3 再哈希法3.哈希化的效率3.1装填因子loadFactor3.2最终选择4.哈希函数及其实现5.哈希表5.1 哈希表的封装5.2 put() 插入和修改数据方法5.3 get() 获取元素方法5.4 remove() 删除元素方法5.5 isEmpty() 判空5.5 size() 元素个数6.哈希表扩容7.解决哈希表容量是否为原创 2021-02-07 21:14:44 · 1504 阅读 · 3 评论 -
数据结构(JS实现)——了解Set集合机制
文章目录一.set 集合的特点一.set 集合的封装三. 常见的操作3.1.add(value):添加元素3.2.remove(value):移除某个元素3.3.has(value):判断value是否在集合中3.4.clear():清空3.5.size():长度3.6.values():返回包含所有元素的数组3.7.union(): 并集3.8.intersection():交集3.9.difference():差集 : 由所有属于A且不属于B的元素组成的集合3.10.child():子集四.源码集合原创 2021-01-29 22:34:08 · 1126 阅读 · 0 评论 -
数据结构(JS实现)——双向链表的实现
文章目录一、什么是双链表?二、双向链表的特点三、 双向链表的封装四、双链表常见的操作(增删改查)4.1 append(element):向链表尾部添加一个新的项4.2 insert(position,element):向链表的特定位置插入一个新的项4.3 get(position):获取对应位置的元素4.4 indexOf(element):返回元素在列表上的索引。如果链表上没有该元素则返回-14.5 updata(position,element):更新某个元素4.6 removeAt(pos原创 2021-01-28 22:50:02 · 365 阅读 · 1 评论 -
数据结构(JS实现)——单链表的实现
文章目录一、什么是单链表?二、单链表的封装三、单链表常见的操作(增删改查)3.1 append(element):向链表尾部添加一个新的项3.2 insert(position,element):向链表的特定位置插入一个新的项3.3 get(position):获取对应位置的元素3.4 indexOf(element):返回元素在列表上的索引。如果链表上没有该元素则返回-13.5 undata(position,element):修改某个元素的位置3.6 removeAt(position):从原创 2021-01-28 22:44:07 · 513 阅读 · 1 评论 -
数据结构(JS实现)——栈的封装与应用
文章目录一.什么是栈二.栈的封装三、栈的常见的操作3.1 push(element):添加一个新元素到栈顶位置3.2 pop():移除栈顶元素,同时返回被移除的元素3.3 peek():返回栈顶元素,不对栈做任何修改(这个方法不会移除栈顶元素,仅仅返回它)3.4 isEmpty():判空3.5 size():返回长度3.6 tostring():输出四、栈的应用(十进制转二进制)一.什么是栈栈是一种先进后出(LIFO)的有序集合,新添加的元素在栈顶,旧元素在栈底。二.栈的封装我们封装栈的常见方式原创 2021-01-28 22:37:34 · 444 阅读 · 1 评论 -
数据结构(JS实现)——队列与优先级队列
文章目录一.什么是队列二.队列的封装三、队列的常见的操作3.1 enqueue(element):向队列尾部添加一个新的项3.2 dequeue():移除队列的第一项,并返回被移除的3.3 front():返回队列中的第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动3.4 isEmpty():判空3.5 size():返回长度3.6 tostring():输出四. 面试题:击鼓传花五. 优先级队列的封装5.1概念5.2 封装5.3 添加方法一.什么是队列只允许在一端插入数据操作,在另一原创 2021-01-28 22:32:56 · 531 阅读 · 2 评论