- 博客(16)
- 收藏
- 关注
原创 数据结构-删除重复结点
删除重复结点(链表)有一个递增非空单链表,设计一个算法删除值域重复的结点。例如,{1,1,2,3,3,3,4,4,7,7,7,9,9,9}经过删除后变成{1,2,3,4,7,9}.思路一:可以用一个指针p指向起始结点,如果p所指的值等于后继结点的值,则删除后继节点;否则p就指向后继节点。重复以上过程,直到p的后继节点为空。代码一:void delsl1 (LNode *L){ LNode *p=L->next,*q; //定义两个指针,其中q指向起始结点 while
2021-06-11 17:11:05
1713
3
原创 数据结构-与表头比较后放置
数据结构-与表头比较后放置与表头比较后放置与表头比较后放置有一个顺序表L,其元素为整型数据,设计一个算法,将L中所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分。思路:首先将表头元素存储起来,然后用两个整型变量 i,j 分别从两端扫向中间,i从左往右扫,j从右往左扫。j 从右往左扫到第一个小于表头元素的话,就把此时 j 的值赋值给 i 所指的位置。(后半部分比表头元素大的话就留下依然放在后面,一开始 i 的值就是表头元素的值,它已经被存储起来了,所以覆盖它完全没有问题)然后
2021-06-10 10:43:37
144
原创 数据结构-删除下标元素
数据结构-删除下标元素删除下标元素删除下标元素设计一个算法,从一给定的顺序表L中删除下标 i~j(i ≤ j,包括i、j)的所有元素,假定 i,j 都是合法的。思路:我们知道要在顺序表中删除元素,就是移动后面的元素来覆盖前面的元素。本题是删除顺序表中间一段连续的元素,因此,只要知道这段元素的长度delta,就可以将后面的元素每个依次移动delta个位置,从而达到删除这一段元素的操作。代码:void deleteElem(Sqlist &L, int i, int j){ //L要
2021-06-10 09:57:16
578
原创 数据结构-元素逆置
数据结构-元素逆置元素逆置元素逆置设计一个算法,将顺序表中所有的元素逆置思路:用两个变量 i,j 分别从表头和表尾向中间移动,每次都将 i,j 所代表的元素进行交换操作。如果表元素为奇数,则他们到达相同位置时结束操作;如果表元素为偶数,则他们相邻的时候结束操作。上面这两句话可以总结为当 i < j 时继续执行操作,否则结束操作。代码:void reverse(Sqlist &L){ //传入要使其逆置的顺序表,为引用型 int i,j; // 创建循环变量
2021-06-10 09:21:35
1539
1
原创 在一个5×5的矩阵中将特定元素放在特定位置
矩阵中元素调动例题解析例题将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右,从上到下顺序依次从小到大存放),写一函数实现。用man函数调用解析#include <iostream>using namespace std;int main(){ void fun(int *p); int a[5][5],i,j,*p; cout << "Please input the 5*5 matrix: " <&l
2021-04-22 21:14:17
263
原创 约瑟夫环算法问题(C++)
约瑟夫环算法问题什么是约瑟夫环约瑟夫环算法题什么是约瑟夫环约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为 k 的人开始报数,数到 m 的那个人出圈;他的下一个人又从 1 开始报数,数到 m 的那个人又出圈;依此规律重复下去,直到剩余最后一个胜利者。约瑟夫环算法题先暂时简化一下这个问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号。例如;如果8个人 留下的
2021-04-20 21:50:14
1360
原创 顺序移动位置的算法(C++)
顺序移动位置的算法问题描述算法解题问题描述有n个整数,使前面各数顺序向后移n个位置,最后m个数变成最前面m个数。写一个函数实现以上功能,在主函数中输入n个整数,并输出调整后的n个数算法解题#include <iostream>using namespace std;int main(){ void move (int *, int, int ); //函数声明 int n,m,i; cout << "How many numbers wi
2021-04-19 21:36:33
768
原创 大小比较排序算法(C++)
起泡法排序什么是起泡法起泡法的应用什么是起泡法描述:将相邻的两个数比较,将小的调到前头。若有6个数(8,9,5,4,2,0)。第一次比较第1个数和第2个数(8和9)的大小,如果第1个数大于第2个数,就把两个数位置交换,第二次将第2个数和第3个数(9和5)进行比较和交换……如此共进行5次,得到8,5,4,2,0,9的顺序。可以知道,9已经“沉底”,成为最下面的一个数,而小的数“上升”。最小的数0已经向上“浮起”一个位置。经过第一轮(共五次)后,已得到最大的数(在最下面)。然后进行第二轮比较,对余下
2021-04-05 22:08:56
5611
原创 求最大公约数和最小公倍数(C++实现)
最大公约数和最小公倍数(C++)Step1——思路如何求最大公约数辗转相除法如何求最小公倍数Step2——代码实现Step1——思路我们拿到一个问题首先要做的是理清思路,对于数学问题来说,我们一般是先用数学的思维来思考如何解决这个问题,然后再把它转化成为计算机语言如何求最大公约数那么如何求最大公约数呢?如果这是一个小学数学题,我们可能会去拼凑,也就是我们常说的穷举法。“正规一点”的我们会用非常耳熟的辗转相除法(也就是欧几里得算法),我也暂时只介绍这一种方法,能够将他写好写熟练就非常不错了,其他
2021-03-30 20:29:04
6634
原创 Java基本语法——循环语句1.1
if-else循环语句练习题练习题1练习题2练习题3(获取一个随机数)练习题4练习题1class IfExer { public static void main(String[] args) { int x = 4; int y = 1; if (x > 2){ if (y > 2) System.out.println(x + y); //相当于在这个语句后面打},因为if只能罩住一行(在没打括号的情况
2020-12-05 16:11:53
321
原创 Java基本语法——循环语句1.0
if-else循环语句关于Scanner的用法if-else例子关于Scanner的用法当你需要在一个程序中通过输入获得其对应的输出结果时,你就需要用到ScannerScanner的语法如下:import java.util.Scanner; //导包,写在最前面Scanner scan = new Scanner(System.in);int score = scan.nextInt();if-else例子下面我们来看例题1:岳小鹏参加Java考试,他和父亲岳不群达成承诺:如果:
2020-11-28 23:35:35
136
原创 Java基本语法——运算符的那些Tips
Java基本语法——运算符运算符算数运算符赋值运算符比较运算符(关系运算符)逻辑运算符位运算符三元运算符运算符运算符是一种特殊的符号,用以表示数据的运算,赋值和比较等。算数运算符运算符运算范例结果+正号+33-负号b=4;-b-4+加5+510-减6-42*乘3*412/除5/51%取模(取余)7%52++自增(前),先运算后取值。自增(后),先取值后运算a=2; b=++a; a=
2020-11-08 10:14:35
219
3
原创 关于进制我想说的话——进制,原码补码反码
关于进制我想说的话前言进制的概念进制的表示方式前言看到这么一句话:世界上有10种人,认识和不认识二进制的。乍那么一看,还以为哪来的十种人,转脑子一想,拍了自己脑门一下,10 就是 1 0,就是二进制的2,哈哈哈。然后就继而复习了关于进制的一些东西。进制的概念进制对于我来说,就是说满几就进位。打个比方噢,二进制,就是满2进位,也就是说满2进1,同理十进制就是满10进1,十六进制就是满16进1.进制的表示方式什么是进制的表示方式呢,也就是说,什么样的数是几进制。还是一样,打个比方:二进制的
2020-10-31 00:48:33
273
原创 Java基本语法——变量笔记总结
Java语言的基本语法变量变量的概念变量的作用使用变量需注意变量的类型整型浮点型字符型布尔型变量变量的概念内存中的一个存储区域该区域的数据可以在同一类型范围内不断变化变量是程序中最基本的存储单元,包含变量类型,变量名和存储的值变量的作用用于在内存中保存数据使用变量需注意Java中每个变量必须先声明,后使用使用变量名来访问这块区域的数据变量的作用域:其定义所在的一对{}内变量只有在其作用域才有效同一作用域内,不能定义重名的变量变量的类型成员变量和局部变量在面向对象中再
2020-10-26 11:07:43
327
原创 Java基本语法——关键字,保留字,标识符
Java语言的基本语法关键字(keyword)关键字的特点关键字的举例保留字(reserved word)标识符(Identifier)标识符的定义规则Java中的名称命名规范生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入关键字(keyword)被Java语言赋予了特殊含义,用作专门用途的字符串(单词)关键字的特点关键
2020-10-24 16:16:45
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人