算法与数据结构
排序算法
Willow_zhu
这个作者很懒,什么都没留下…
展开
-
java语言实现八皇后问题(回溯加递归)
八皇后问题:在8X8的国际象棋棋盘上摆放八个皇后,使她们不能互相攻击,也就是任意两个皇后不能位于同一行、同一列、同一条斜线上。求出有多少种摆法?...原创 2020-03-05 23:03:39 · 267 阅读 · 1 评论 -
递归的调用规则
递归调用在内存中的步骤:首先看一段代码:public class Test { public static void main(String[] args) { test(4); } public static void test(int n){ if (n>2){ test(n-1); ...原创 2020-03-04 22:43:06 · 435 阅读 · 1 评论 -
java语言中缀表达式转后缀表达式
仅用于 + - * / ( ) 的中缀表达式思路:因为在输入表达式的时候,表达式是字符串。为例遍历字符串方便,可以考虑将其转化成为ArrayList类型的。由于表达式中可能会出现多位数的情况(比如20*3,遍历的时候先遍历2再遍历0,但是20才是一个数),所以定义一个变量numString用来拼接数字。所以代码如下:public static List<String> infix...原创 2020-03-04 11:22:21 · 361 阅读 · 2 评论 -
java语言使用链表实现栈(入栈出栈)
刚开始学习栈的时候,使用数组来实现的。但是,用链表也可以实现,所以就试一下。栈的特性就是 后进先出,如果用链表来实现的话,将新入栈的元素作为链表的最后一个元素,在出栈的时候就不是很好操作。那这样吧,栈顶对链头,栈底对链尾。这样就好操作了。所以在入栈的时候,将新入栈元素的next指向原来的栈顶元素就可以了。先创建链表节点类吧public class Node<T> { ...原创 2020-03-02 16:42:51 · 1582 阅读 · 0 评论 -
java语言用循环单链表实现约瑟夫问题(丢手绢问题)
Josephu 问题:假设有 n 个小孩围坐在一起(编号为 1, 2, …, n)。约定从编号为 k (1<=k<=n)的小孩从1开始报数,报数为 m 的那个小孩出列。他的下一位又从1开始报数,报数为 m 的那个小孩出列。以此类推,直到所有的小孩都出列。这样就会产生一个出列编号。这里,我们可以使用单向循环链表 来解决这个问题。将这个 n 个小孩构成一个有 n 个节点单向循环链表,然...原创 2020-03-01 22:45:48 · 455 阅读 · 2 评论