随笔分类 - 数据结构和算法
记录算法笔记和心得
摘要:1、第226题:翻转二叉树 递归+迭代两种实现方式: /** 反转二叉树 * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null
阅读全文
摘要:一、二叉树的基本概念 从逻辑结构角度来看,前面说的链表、栈、队列都是线性结构;而今天要了解的“二叉树”属于树形结构。 1.1 多叉树的基本概念,以上图中“多叉树”为例说明 节点:多叉树中的每一个点都叫节点;其中最上面的那个节点叫“根节点”; 父节点:节点1是节点2/3/4/5/6的父节点,然后节点2
阅读全文
摘要:一、什么是数据结构栈 在数据结构中有一个栈结构,在内存空间中也有一个栈空间,这两个”栈“是两个不同的概念。这篇我们说的是数据结构中的栈。栈是一种特殊的线性表,特殊性体现在只能在栈顶进行操作,往栈顶添加元素,一般叫push, 入栈;从栈顶移除元素,一般叫pop, 出栈,操作如图: 这个特征叫”后进先出
阅读全文
摘要:一、双向链表 在上文《JS数据结构第二篇 链表》中描述的是单向链表。单向链表是指每个节点都存有指向下一个节点的地址,双向链表则是在单向链表的基础上,给每个节点增加一个指向上一个节点的地址。然后头结点的上一个节点,和尾结点的下一个节点都指向null。同时LinkedList类中再增加一个last内部属
阅读全文
摘要:一、什么是链表 链表是一种链式存储的线性表,是由一组节点组成的集合,每一个节点都存储了下一个节点的地址;指向另一个节点的引用叫链;和数组中的元素内存地址是连续的相比,链表中的所有元素的内存地址不一定是连续的。结构模拟如图: 一般来说,说到链表,就要提下数组,一般链表都是和数组进行对比。 在很多编程语
阅读全文
摘要:1、算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 那么一个怎样的算法才能称得上是好算法,也就是说有没有什么标准来评判一个算法的好坏? 在此之前,咱们先来做个试验: 用两种方式来实现求裴波那契数列第n项的值,一种方式用递归方式,第二种方式用普
阅读全文
摘要:菜单导航 1、常用数学公式: 等差/等比数列通项和求和、指数、对数、排列组合等 2、逻辑且/或/非/异或,和余数 3、数学归纳法 4、递归 5、指数爆炸 6、反证法 一、常用数学公式 1.0 实数:有理数和无理数的总称,常用字母R表示实数集; 有理数是整数和分数的集合,有理数的小数部分是有限或者无限
阅读全文
摘要:数据结构:是相互之间存在的一种或多种特定关系的数据元素的集合。数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常...
阅读全文
摘要:菜单导航 1、冒泡排序 2、选择排序 3、折半查询 4、进制查表(十进制转二进制、八进制、十六进制) 一、冒泡排序 二、选择排序 三、折半查询 四、进制查表(十进制转二进制、八进制、十六进制) 十进制数据,转成相对应的二进制、八进制、十六进制打印出来
阅读全文