数据结构
文章平均质量分 71
Angety
这个作者很懒,什么都没留下…
展开
-
Java(三)快速排序
快速排序基本思想代码设计代码实现时间、空间复杂度原创 2021-10-10 11:02:49 · 115 阅读 · 0 评论 -
Java(二)希尔排序、堆排序、归并排序
希尔排序希尔排序是不稳定的。基本思想希尔排序是插入排序的一种,是对插入排序的一种优化。按照gap = length /2 ; 随后以增量gap = gap / 2取值;每次按增量对相应的元素进行比较交换。直到增量为1时,排序完成。代码设计定义 i , j , temp;和插入排序相似,只不过将增量从1变为5,3,等。代码实现 private static<T extends Comparable<T>> void shellS...原创 2021-10-09 15:10:02 · 100 阅读 · 0 评论 -
Java(一) swap交换、冒泡排序、选择排序、插入排序
目录swap交换方式位运算数学计算通过数组交换冒泡排序冒泡排序的基本思想代码设计代码实现时间、空间复杂度选择排序选择排序的基本思想代码设计代码实现时间、空间复杂度插入排序插入排序的基本思想代码设计代码实现时间、空间复杂度swap交换方式位运算主要针对整型,数学计算主要针对小数和整型,数组最为常用。位运算,两数字异或处理 数学计算 通过数组交换位运算异或 ^将数字转化为二进制形式,对应的两个数字(0 /...原创 2021-10-03 14:46:22 · 551 阅读 · 0 评论 -
逆波兰计算器
利用逆波兰表达式(后缀表达式),实现简易计算器实现功能:进行基本的加减乘除操作,数字为多位整数,包含括号实现思路:代码实现:原创 2021-09-10 18:30:39 · 167 阅读 · 0 评论 -
利用栈实现简易计算器(含代码)
思路:计算器的简单实现实现计算机的加、减、乘、除操作eg:3+2*4-20/4 = 3+8-5 = 61.定义index对表达式进行扫描; 创建两个栈,一个栈存放数字,称为数栈(numStack);一个栈存放符号,称为符号栈(symbolStack);2.当遇到数字时,入数栈;(注意字符位数,数字有可能是多位数)2.1若是字符串最后一个的时候,直接入数栈2.2若不是最后一个字符,需要再往后判断一位,若后一位不是符号,继续遍历,并将该字符拼接;若是则...原创 2021-08-26 17:11:32 · 3609 阅读 · 3 评论 -
栈的三种表达式(前缀、中缀、后缀)
前缀表达式(波兰表达式)即是所有运算符在操作数前面。前缀表达式的计算机求值过程1.计算机从右至左进行扫描2.遇到数字,将数字压入数栈;遇到符号,则弹出数栈中的栈顶和次顶的两个数字(栈顶(运算符)次顶)和符号进行运算,并将得到的结果压入栈中3.依次重复上述操作,直至操作进行到表达式最左端。最后运算得到的结果即为最后的结果例如: (1+2)*3-4的前缀表达式为 - * + 1 2 3 41.从右至左进行扫描,将4 3 2 1依次压入栈2.继续向左扫描,遇到 +,弹出栈顶元素.原创 2021-08-26 16:30:53 · 4481 阅读 · 4 评论 -
栈和队列相关编程——验证栈序列、两个栈模拟一个队列、两个队列模拟一个栈
栈:特征是先进后出队列:先进先出原创 2021-07-24 20:40:23 · 252 阅读 · 0 评论 -
单链表的增、删、改、查操作
定义一个接口,里面包含增、删、改、查等操作public interface List<E> { void addHead(E value); void addTail(E value); void removeHead(); void removeTail(); void removeValue(E value); void change(E srcValue, E aimValue); boolean cont...原创 2021-07-16 21:34:56 · 314 阅读 · 0 评论