
数据结构(第4版)
明快de玄米61
不积跬步,无以至千里;不积小流,无以成江海
展开
-
MyStringBuffer类声明以下成员方法,要求每字符一次移动到位(数据结构-Java版-叶核亚-74页-思考题3-3)
题目:MyStringBuffer类声明以下成员方法,要求每字符一次移动到位。MyStringBuffer replace(int begin,int end,String s)代码:// 模仿insert()方法,和老师给的做法不同,我采用这种方法的篇幅也不是特别多public synchronized MyStringBuffer replace(int begin, int end, String s){ int i = begin; if (begin>=0 &原创 2020-08-07 11:09:04 · 251 阅读 · 0 评论 -
把10进制整数转换成其他进制字符串
10进制转16进制:public class Test { public static void main(String[] args) { // 测试数据 int i1 = 127; int i2 = 1000; // 输出测试数据 System.out.println("10进制" + i1 + "的16进制数是:" + toHexString(i1)); System.out.println转载 2020-08-06 23:01:45 · 1559 阅读 · 0 评论 -
把2~16进制的字符串转换成10进制整数
代码:public class Test<T> { public static void main(String[] args) { // 测试数据 String s1 = "-80"; String s2 = "-1"; String s3 = "+7f"; String s4 = "3e8"; // 输出测试数据 System.out.println("16进制"原创 2020-08-06 22:21:38 · 565 阅读 · 0 评论 -
关于泛型类的看法
首先谈谈为什么需要在类上使用泛型,因为类中有一些方法需要接受很多种类型的参数,对于这些参数的操作都是一致的,不止一次的就是参数类型不同,但是一个一个的重载实在太麻烦了,所以我们可以使用泛型来完成这个功能,当我们往泛型所在的形参位置传递一个参数值的时候,泛型的类型就被定义好了,但是这个泛型总归得有一个来处吧,我总不可能在方法的形参上面直接写一个T a,那编译器会给我报错的,所以我们需要在类上定义泛型,也就是在类型后面添加一个<T>,然后泛型类就形成了,泛型类的作用就是在使用该泛型类定义一个对象之后原创 2020-08-06 11:17:16 · 136 阅读 · 0 评论 -
用java语言实现矩阵转置
矩阵转置定义:——来源于百度百科代码:public class Test { public static void main(String[] args) { // 测试数据 int[][] a = {{1, 2, 0}, {3, -1, 4}}; // 获得矩阵转置的结果 int[][] b = Test.matrixTransposition(a); // 遍历转置之后的矩阵 for原创 2020-07-31 11:32:28 · 2005 阅读 · 0 评论 -
用Java语言实现矩阵相乘
矩阵乘法定义:矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。代码:public class Test { public static void main(String[] args) { // 测试数据 int[][] a = {{5, 2, 4}, {3, 8, 2}, {6, 0, 4}原创 2020-07-31 11:14:00 · 3174 阅读 · 0 评论 -
1-3 分别采用一维数组、二维数组输出杨辉三角---》数据结构(Java版)(第4版)实验1:算法设计与分析
题目:中国南宋数学家杨辉在《详解九章算法》(1261年)中给出以下三角形(后世称为杨辉三角),其中每行数值个数为其行序号n(n>=1),各行两端数值为1,其他数值等于它肩膀上的两个数值之和。n=5的杨辉三角如下:杨辉三角的重要意义在于,其各行是二项式(a+b)n展开式(n=0,1,2,…)的系数表。n=2或3的展开式如下:(a+b)2=a2+2ab+b2(a+b)3=a3+3a2b+3ab2+b3分别采用一维数组、二维数组输出杨辉三角。使用一维数组实现:public class Tes转载 2020-07-30 23:33:58 · 427 阅读 · 0 评论 -
1-1 采用Java语言声明复数类---》数据结构(Java版)(第4版)实验1:算法设计与分析
题目:采用Java语言声明复数类,成员声明见1.1.3节复数抽象数据类型,增加实现有字符串构造复数、字符串描述、比较相等等操作。复数语法图如图1.7所示。代码:public class Test { // real:实部,imag:虚部 private double real, imag; public Test(double real, double imag) { this.real = real; this.imag = imag;原创 2020-07-30 22:07:41 · 1026 阅读 · 0 评论 -
1-2 实现以下产生随机数的方法,修饰符为public static---》数据结构(Java版)(第4版)实验1:算法设计与分析
题目:实现以下产生随机数的方法,修饰符为public static。Integer randomDifferent(int n,int size) // 返回n个互异的随机数,范围是0~size-1Integer randomSorted(int n,int size) // 返回n个排序的随机数Integer randomDifferentSorted(int n,int size) // 返回n个互异的排序的随机数代码:public class Test {原创 2020-07-30 18:36:40 · 1638 阅读 · 0 评论 -
求取n个整数的最大公约数
代码:public class Test { public static void main(String[] args) { // 测试数据 int[] arr = {12, 4, 24, 36}; // 测试 System.out.println(mngcd(arr)); } // 计算多个数的最大公约数 public static int mngcd(int[] arr) { /原创 2020-07-26 20:04:51 · 1225 阅读 · 0 评论 -
利用欧几里得算法(辗转相除法)计算两个非负整数的最大公约数
欧几里得算法定义:计算两个非负整数p和q的最大公约数:若q是0,则最大公约数为p。否则,将p除以q等到余数r,p和q的最大公约数即为q和r的最大公约数。代码实现:public class Test { public static void main(String[] args) { int p = 60; int q = 24; System.out.println(p + "和" + q + "的最大公约数是:" + gcd(p, q));原创 2020-07-03 00:33:57 · 861 阅读 · 0 评论 -
使用更相减损术求解两个非负整数的最大公约数---java版
更相减损术定义:点击我观看“百度百科-更相减损术”,对于更相减损术,百度百科肯定解释的比我好,当然我也看了百度的解释,大家慢慢食用,理解之后在来看以下代码实现就可以了!编码实现:public class Test { public static void main(String[] args) { // 测试,该测试数据来源于“百度百科-更相减损术” System.out.println(gcd(260, 104)); } /**原创 2020-07-26 19:00:35 · 276 阅读 · 0 评论