算法&技巧
vrmei
幻化成风
展开
-
算法--Dijkstra的双栈算术表达式求值
对于需要做出计算器功能的题目有这样的一种简单算法可以轻易解决问题其优势在于算法简单,很好的利用了栈的LIFO特性缺点也很明显:不能很好的适应用户的输入,输入必须符合格式格式要求:数与数之间,操作符与数之间必须要有空格进行连接整个表达式需要被括号圈住操作符数量必须与括号组数相等且均有意义必须符合以上三个条件 该算法才能够起到作用具体实现如下impor...原创 2019-05-19 11:23:16 · 149 阅读 · 0 评论 -
技巧-不使用额外空间交换两个变量的值
一般而言交换两个变量的值都需要第三个临时变量的参与但是有一些方法可以避免第三个变量 一、不使用第三个变量(异或)void swap(int *x, int *y){ *x = *x ^ *y; // 当&a.&b为同一个地址的时候。a, b都会变为...转载 2019-05-15 09:18:52 · 2233 阅读 · 0 评论 -
算法-链表对于栈,队列,背包的实现
数组与链表的优缺点十分明显,所以对于不同的问题时需要建立模型计算更适合的数据结构以下是一些链表的应用:下压栈的链表结构import java.util.Iterator;import static java.lang.System.out;public class Stack<Item> { private Node first; private in...原创 2019-05-21 23:44:59 · 131 阅读 · 0 评论