数据结构和算法
奔跑的小脑斧
努力搬砖ing~
展开
-
求两个数的最大公约数
算法:(1)是两个数相余,直到余数为0,如果余数不为0,就用除数和余数求余 (2)若发现余数为0,那么当前的除数就是最大公约数 代码如下: package ace; public class xingxing { /**@小脑斧 * 求最大公约数 * @param num1 * @param num2 */ public...原创 2019-12-21 15:26:57 · 167 阅读 · 0 评论 -
画星星
一、玩法1 * *** ***** ******* ********* (1)首先,我们可以发现:每行星星的个数是(2*行数-1),每行的空格数就是最大行数减去第n行(最大4行,第4行没有空格,最大4行,第三行1个空格) (2)for循环 话不多说,直接上代码 package ace; public class xingxing { /**@小团团 ...原创 2019-12-21 15:18:10 · 244 阅读 · 0 评论 -
杨辉三角
每行的第一个和最后一个都是1 进一步推算:第1列全部为1,第一行全都是1,当列数等于行数为1 当前值等于头上的值加头上的左边的值 第一行一列,第二行两列,第三行三列……. 话不多说,直接上代码 package ace; public class sanjiao { /** * 打印杨辉三角形 */ pub...原创 2019-12-21 15:02:29 · 129 阅读 · 0 评论 -
队列
队列就和平时的排队是一样的,排在前边的先出列,排在后边的后出列,所以队列是先入先出型的(FIFO)。 队列也分成两种: 静态队列(数组实现) 动态队列(链表实现) 这次用数组来实现静态队列了。在实现实现静态队列时,我们都是做成循环队列。 循环队列一个很大的优点就是节省内存 废话不多说,直接上代码,下边代码包括创建静态队列,判断队列是否已满,遍历队列,判断队列...原创 2019-12-20 10:42:22 · 102 阅读 · 0 评论 -
栈学习
栈可以看成一个箱子 往箱子里面放东西叫做入栈 往箱子里面取东西叫做出栈 箱子的底部叫做栈底 箱子的顶部叫做栈顶 说到栈的特性:先进后出(LIFO, Last In First Out) 栈的分类有两种: 静态栈(数组实现) 动态栈(链表实现) 这里用链表来表示栈,这次会有两个指针: 栈顶 栈底 packa...原创 2019-12-20 09:32:35 · 189 阅读 · 0 评论 -
二叉树学习总结
二叉树遍历有三种方式 先序遍历 先访问根节点,然后访问左节点,最后访问右节点(根->左->右) 中序遍历 先访问左节点,然后访问根节点,最后访问右节点(左->根->右) 后序遍历 先访问左节点,然后访问右节点,最后访问根节点(左->右->根) package ace; public ...原创 2019-12-19 20:42:50 · 581 阅读 · 0 评论 -
利用递归解决汉诺塔问题
汉诺塔问题求解 汉诺塔问题的描述如下:有A、B、C 3根柱子,在A上从下往上按照从大到小的顺序排列着64个圆盘,以B柱子为中介,把盘子全部移动到C 上。移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大的盘子。下边为求解3阶汉诺塔问题的具体程序。在包ace中创建了一个HanoiTower类,然后在类中定义一个moveDish的方法,整个程序运用递归方法实现汉诺塔问题的求解。...原创 2019-11-26 10:21:45 · 815 阅读 · 0 评论 -
ArrayList操作
ArrayList中的添加元素、获取指定元素值、设置指定元素值和获取变长数组的长度 ArrayList是基于数组实现的。 ArrayList里有一个属性,这个属性就是一个数组。这个属性会记录我们放了多少数据,这样我们再向其中放置数据时,就会知道该向这个数组的哪个位置放数据了,但是这个数组也会有长度限制,当超过这个限制时,其内部就会创建一个具有更长的长度的数组,然后把旧数组的数据复制到新的数组里边,...原创 2019-11-19 15:59:23 · 351 阅读 · 0 评论 -
用两个栈做队列(左程云算法学习)
用两个栈实现一个队列的操作原创 2019-09-03 20:57:10 · 208 阅读 · 1 评论