![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
常见数据结构和算法,优化性能
永不落后于人
永远相信美好的事情即将发生
展开
-
中缀表达式转后缀表达式
转换步骤:1.定义两个栈,s1存放运算符,s2存储数字和运算符(只入栈不出栈,最后还要倒序输出,可以使用ArrayList)2.定义辅助变量,扫描表达式字符。如果是数字,直接入s2栈。如果是运算符:==> 2.1如果s1为空或者为(,直接入栈。如果s1非空,比较当前运算符和栈中运算符的优先级。==> 2.2如果当前运算符优先级高,将当前运算符压入s1.==> 2.3如果当前运算符优先级低,将s1栈顶运算符弹出,放入s2,直到s1栈顶元素优先级小于当前运算符为止3.如果当前字符是原创 2021-07-02 14:28:05 · 144 阅读 · 0 评论 -
单链表模拟实现
package com.aura.linkedList;/** * Author:panghu * Date:2021-06-29 * Description: * 链表模拟实现 * =>链表是以节点的形式进行存储,是链式存储 * =>每个节点包含data域和next域,next域指向下一个节点 * =>节点在内存中不一定是连续存储 * =>链表分为带头节点的链表和不带头节点的链表 * =>链表的头节点不能动,所以我们需要借助一个辅助变量(指针)来遍历整个原创 2021-06-29 15:22:46 · 112 阅读 · 0 评论 -
使用数组模拟实现队列
package com.aura.queue;import java.util.Scanner;/** * Author:panghu * Date:2021-06-28 * Description: 数组模拟环形队列实现 */public class CircleQueueDemo { public static void main(String[] args) { CircleQueue queue = new CircleQueue(4); S原创 2021-06-29 15:21:31 · 97 阅读 · 0 评论 -
稀疏数组的使用
使用场景如果我们使用二维数组记录棋盘和棋子,会产生大量的默认值0,记录了很多没有意义的数据。可以将二维数组转换为稀疏数组。当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的存储方式拿上面的棋盘案例来说:第一行三个值分别表示:二维数组的行数;二维数组的列数;非0元素的个数。其他行的三个值表示:值n在二维数组中的行索引和列索引。代码实现import java.io.*;/** * Author:panghu * Date:2021-06-原创 2021-06-29 15:19:17 · 113 阅读 · 0 评论