随笔分类 - 数据结构与算法
所有的案例均使用JavaScript编写
摘要:图是网络结构的抽象模型。图是一组由边连接的节点(或顶点)。一个图G=(V,E)由以下元素组成。V:一组顶点。E:一组边,连接V中的顶点。 由一条边连接在一起的顶点称为相邻顶点。 一个顶点的度是其相邻顶点的数量。 路径是顶点V1,V2,....,Vk的一个连续序列,其中Vi和Vi+1是相邻的。 简单路
阅读全文
摘要:位于树顶部的节点叫做根节点,它没有父节点。树中的每个元素都叫作节点,节点分为内部节点和外部节点。至少有一个子节点的节点称为内部节点。没有子元素的节点称为外部节点或叶节点。 子树:由节点(非根节点)和它的后代构成。 节点的深度:取决于它的祖先节点的数量。 树的高度:取决于所有节点深度的最大值。一棵树也
阅读全文
摘要:1、名称解释:散列算法的作用是尽可能快地在数据结构中找到一个值。给定一个键值,返回相应值在表中的地址。 2、散列表基本功能: 3、“lose lose”散列函数的基本结构: 4、分离链接优化散列表: put方法优化: get方法优化: remove方法优化: 5、线性探查优化散列表: get方法优化
阅读全文
摘要:1、名词解释:字典存储的是[键,值]对,其中键名是用来查询特定元素的。字典和集合和相似,集合以[值,值]的形式存储元素,字典也称作映射。 2、字典功能: 3、字典的基本结构: 获取字典中所有的值: 清空字典: 返回字典的键值对的个数: 返回字典中所有的键名: 返回字典:
阅读全文
摘要:1、名词解释: 集合是由一组无序且唯一(即不能重复)的项组成的。 2、功能实现: 3、集合操作 交集:对于给定的两个集合,返回一个包含两个集合中共有元素的新集合。 4、ES6新的类型
阅读全文
摘要:1、名词解释:链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。 2、链表功能: 3、单项链表基本框架: 4、双向链表:链接是双向的:一个链向下一个元素,另一个链向前一个元 基本框架: 5、单
阅读全文
摘要:名词解释:队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。 创建队列: 数组arr存储队列的元素,类QUeue()含有队列的方法 队列的功能: enqueue():向队列尾部添加一个或多个元素 enqueue() { let a = arr.get(thi...
阅读全文
摘要:1、名词解释 栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 2、创建栈 因为JavaScript没有栈结构,我们创建一个类来模拟栈。 设定栈的名字为Stack,栈中的数据保存在数组ar
阅读全文
摘要:1、创建和初始化数组 访问数组 2、添加元素 2.1、添加元素到数组的末尾 2.2、添加元素到数组的首位 3、删除元素 3.1、删除数组结尾的元素 3.2、删除数组开头的元素 3.3、在任意位置添加或删除元素 4、二维和多维数组 5、数组的其他方法 5.1、合并数组 5.2、迭代数组的元素 5.2.
阅读全文

浙公网安备 33010602011771号