![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
unique¢
这个作者很懒,什么都没留下…
展开
-
中缀表达式转换为后缀表达式实现基本计算机功能
前缀、中缀、后缀表达式(逆波兰表达式)举例说明运算表达式:(3+4)*5-6前缀表达式:- * + 3 4 5 6(从右向左扫描)中缀表达式:(3+4)*5-6 (我们人常见的运算表达式)后缀表达式:3 4 + 5 * 6 -(从左向右扫描,与前缀表达式相反)中缀表达式转为后缀表达式的思路1)初始化两个栈:运算符栈s1和储存中间结果的栈s22)从左到右扫描中缀表达式3)遇到数字时,将其压入s24)遇到运算符时,比较其与s1栈顶运算符的优先级1.如果s1为空,或原创 2021-01-29 17:59:40 · 463 阅读 · 2 评论 -
Java实现单向环形链表
单向环形链表介绍单向环形链表就是在单向链表(没有头节点)的基础上,让链表的最后一个节点的next指向该链表的第一个节点。如下图所示用单向环形链表解决约瑟夫问题1)1.约瑟夫问题设编号为1,2,···n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依此类推,直到所有人出列为止,由此产生一个出队编号的序列。2.提示先构成一个有n个节点的环形链表,然后由k节点起从1开始计数,计到m时,对应的节点从链表原创 2021-01-28 17:26:34 · 302 阅读 · 2 评论 -
java实现双向链表的基本功能
单向链表的缺点1)单向链表,查找的方向只能是一个方向,而双向链表可以向前或向后查找2)单向链表不能自我删除,需要借助辅助变量,而双向链表可以自我删除双向链表的增删改、遍历的操作思路1)添加节点(默认添加到双向链表的最后)1.先找到双向链表的最后节点2.temp.next=newHero(temp为辅助节点)3.newHero.pre=temp2)删除节点1.直接找到要删除的这个节点,比如temp2.temp.pre.next=temp.next3.temp.next.pre=temp.原创 2021-01-23 01:04:58 · 164 阅读 · 1 评论 -
Java编写单向链表
链表(Linked List)介绍1)链表是以节点的方式来存储数据,是链式存储。2)每个节点包含data域及next域。next域:指向下一个节点。3)链表的各个节点不一定是连续存储的。4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定。单链表实现增删改查的思路(用水浒传英雄排行耪来说明)1)添加数据第一种方法:数据直接添加到链表的尾部;思路该链表为空链表时:1.先创建一个head头节点(不存放具体的数据),作用是表示单链表的头(head.next)。2.后面每添加一个节原创 2021-01-22 17:36:15 · 178 阅读 · 0 评论 -
队列
#队列1.队列介绍1)队列是一个有序列表,可以用数组或是链表实现。2)遵循先进先出原则。即:先存入列表的数据,先取出。后存入的后取出2.数组模拟循环队列思路1)队列的输出、输入时分别从前后两端来处理,因此需要两个变量front(队头)及rear(队尾)来实现输入及输出。2)front初始值=0;front指向队列的第一个元素。3)rear的初始值=0;rear指向队列的最后一个元素的后一个位置。因此队列的最大容量比数组的长度少1。4)队列满的条件为...原创 2021-01-21 14:25:02 · 68 阅读 · 0 评论 -
稀疏数组与二维数组的转换
#稀疏数组的应用1.基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。2.处理方法1)记录数组一共有几行几列,有多少个不同的值2)把具有不同值的元素的行列及值记录在稀疏数组中,从而减少内存损耗。3.思路二维数组转成稀疏数组1.遍历 原始的二维数组,得到有效数据的个数sum2.根据sum就可以创建 稀疏数组 sparseArr int[sum+1][3]3.将二维数组的有效数据存入到 稀疏数组稀疏数组转原始的二维数...原创 2021-01-20 23:50:05 · 106 阅读 · 3 评论