1.介绍 后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后 2.举例说明 (3+4)*5-6对应的后缀表达式就是3 4 +5 * 6 - 3.示例 输入一个逆波兰表达式(后缀表达式),使用栈(Stack),计算其结果 思路分析: 从左至右扫描表达式,遇到数字时,将数字压入堆栈, ...
分类:
编程语言 时间:
2020-06-21 16:10:37
阅读次数:
56
数据结构 (data structure) 的主要任务是通过分析数据对象的结构特征,包括逻辑结构及数据对象之间的关系,然后把逻辑结构表示成计算机课实现的物理结构,从而便于计算机处理。 算法(algorithm)是解决特定问题求解步骤的描述,在计算机中表现为有限的操作序列。在数据类型建立起来之后,就要 ...
分类:
编程语言 时间:
2020-06-21 13:37:27
阅读次数:
52
这是之前学习记录的一篇文章,最近准备面试复习一下,内容做了些修修补补,如有错误欢迎指出 本文来自于学习 《JavaScript数据结构与算法(第3版)》 以及网路资料,如有不对请指正。作为软件开发工作者,可能你听过这么一句话:程序 = 数据结构 + 算法。可见数据结构和算法在我们的编码工作中是非常的 ...
分类:
编程语言 时间:
2020-06-20 00:34:53
阅读次数:
48
双端队列和普通队列不同的地方是既可以队首和队尾进行插入,同时也就可以从队首和队尾进行remove删除 ,同时不遵循先进先出或者先进后出的规则,这需要通过具体的算法实现来确定,这个数据结构的实现过程如下: class Deque: def __init__(self): self.items = [] ...
分类:
编程语言 时间:
2020-06-19 23:13:50
阅读次数:
76
一、如何分析一个“排序算法” 从三个维度进行评价和分析: 1. 排序算法的执行效率 a. 最好情况、最坏情况、平均情况时间复杂度 b. 时间复杂度的系统、常数、低阶 c. 比较次数和交换(或移动)次数 2. 排序算法的内存消耗 用空间复杂度来衡量。 原地排序算法,特指空间复杂度是O(1)的排序算法。 ...
分类:
编程语言 时间:
2020-06-19 11:53:01
阅读次数:
41
周数 专业学习目标 专业学习时间 新增代码 博客发表量 知识技能总结 第八周 掌握数据结构与算法 6h 150h 1 了解二叉树的创建与遍历的递归思想 第九周 掌握数据结构与算法 8h 130h 1 掌握二叉树的查找 第十周 掌握数据结构与算法 7h 160h 1 学习l哈尔曼树 第十一周 掌握数据 ...
分类:
其他好文 时间:
2020-06-18 11:11:39
阅读次数:
73
前言 逆波兰其实就是后缀表达式的计算。 那么就需要了解什么是前缀表达式、中缀表达式、后缀表达式。 正文 在此我就不客气了,直接复制网上的解释,基本一致我也不知道谁是原作者,就不贴出来了。 前缀表达式的计算机求值 从右至左扫描表达式 遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符 ...
分类:
编程语言 时间:
2020-06-17 20:15:21
阅读次数:
63
一、如何理解“递归” 递归是一种应用非常广泛的算法(或者编程技巧)。 二、递归的三个条件 1、一个问题的解可以分解为几个子问题的解 2、这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 3、存在递归终止条件 三、如何编写递归代码 写递归代码最关键的是找到如何将大问题分解为小问题的规律, ...
分类:
编程语言 时间:
2020-06-17 18:19:45
阅读次数:
58
算法描述 大多数情况下,在三种简单排序中,插入排序都是最优的选择。虽然插入排序算法仍需要 O(N^2) 的时间,但在一般情况下,它要比冒泡排序快一倍,比选择排序还要快一点。插入排序可以简单表述为:使“标定项”的一侧局部有序,每次将标定项插入有序一侧,同时将另一侧的下一项设为“标定项”。 代码部分 / ...
分类:
编程语言 时间:
2020-06-16 23:25:17
阅读次数:
70
一、概念 栈:后进先出,先进后出的数据结构。栈是一种“操作受限‘的线性表,只允许在一端插入和删除数据。 当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,我们就应该首选“栈”这种数据结构。 二、如何实现“栈” 既可用数组(顺序栈),也可用链表(链式栈) 数组实现: // 基 ...
分类:
编程语言 时间:
2020-06-16 23:16:52
阅读次数:
79