- 博客(37)
- 收藏
- 关注
原创 七大排序算法-Java实现
把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。实际中我们玩扑克牌时,就用了插入排序的思想。
2025-09-26 01:08:39
894
原创 Java数据结构-优先级队列(堆)
队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队 列时,可能需要优先级高的元素先出队列,该中场景下,使用队列显然不合适,比如:在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话;初中那会班主任排座位时可能会让成绩好的同学先挑座位。在这种情况下,数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(Priority Queue)。
2025-09-18 18:12:29
393
原创 JavaSE-异常
Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我 们实际情况的异常结构.例如, 我们实现一个用户登陆功能.if (!if (!System.out.println("登陆成功");此时我们在处理用户名密码错误的时候可能就需要抛出两种异常. 我们可以基于已有的异常类进行扩展(继承), 创建 和我们业务相关的异常类.具体方式:1. 自定义异常类,然后继承自Exception 或者 RunTimeException。
2025-07-28 21:23:39
981
原创 JavaSE-String类
String在Java中是一种应用类型,用于表示一串字符,在基础语法中,我们只学习了使用String表示文本的用法,但String类的用处实际上很多。
2025-07-28 00:02:51
1059
原创 JavaSE-图书信息管理系统
项目结构分为三个包和一个主程序类,book包中为书和书架,ioperations包中为各种管理操作实现,user包中为用户权限,Main类作为主程序运行。学习了Java的基础语法、类和对象、继承和多态以及抽象类和接口等后,我们就可以借此完成一个基础的图书信息管理系统来巩固知识。在这个类中,我们需要给图书添加成员变量name,author,price,type和isBorrowed来描述图书。系统内置了三本图书,图书信息以Book{书名,作者,价格,类型,借出状态}的形式展示。这个类用于新增图书操作。
2025-07-25 21:37:35
505
原创 JavaSE-多态
在完成某个行为时,不同的对象在完成时会呈现出不同的状态。比如:动物都会吃饭,而猫和狗都是动物,猫在完成吃饭行为时吃猫粮,狗在完成吃饭行为时吃狗粮,猫和狗都会叫,狗在完成这个行为时会狗叫,而哈基米会哈气。在编程中,多态是指利用子类继承父类的特性在使用对象时达到简化代码的目的。
2025-07-13 23:01:43
859
原创 JavaSE-继承
这两个名为Dog和Cat的类拥有相同的成员变量以及相同的成员方法。在主方法中可以正常调用他们的变量和方法。我们可以发现在Dog和Cat中就具有相同的成员,如果每次新建一个动物类时都要加入这些相同成员,未免有些麻烦,于是继承出现了。
2025-07-08 23:37:26
695
原创 数据结构入门-图的基本概念与存储结构
图是由顶点(vertex)的有穷非空集合和顶点之间的边(eage)的集合组成的。通常记为G(V,E),其中G表示一个图,V是图G中顶点的集合,E是边的集合。V(G)和E(G)通常分别表示图G的顶点和边集合。注意:对于图这种数据结构,不允许没有顶点,但边集可以为空。
2025-06-30 22:21:19
851
2
原创 PAT (Basic Level) Practice (中文)(c++)
成为C嘎嘎高手,从刷题做起!PAT (Basic Level) 1001 害死人不偿命的(3n+1)猜想(c++)PAT (Basic Level) 1002 写出这个数(c++)PAT (Basic Level) 1003 我要通过!(c++)PAT (Basic Level) 1004 成绩排名(c++)PAT (Basic Level) 1005 继续(3n+1)猜想(c++)PAT (Basic Level) 1006 换个格式输出整数(c++)PAT (Basic Level) 1007 素数对猜
2025-06-18 09:01:36
307
原创 PAT (Basic Level) 1013 数素数(c++)
令 Pi 表示第 i 个素数。现任给两个正整数 M≤N≤10^4,请输出 PM 到 PN 的所有素数。
2025-06-18 08:51:27
224
原创 C++与Java类和对象的异同
类是对象的蓝图,用于定义对象的行为和属性,两种语言使用相同的关键字class定义类。需要注意的是:c++在类的定义之后需要加上分号,而java则不用。//c++类定义示例num=n;//Java类定义示例num=n;
2025-05-28 20:57:44
802
原创 数据结构入门-哈夫曼树_树与二叉树的转换
带权路径长度WPL最小的二叉树称为哈夫曼树。先前构造的这颗二叉树虽然比基础二叉树的带权路径长度更短,但并不是哈夫曼树。哈夫曼树有自己的构造方法。
2025-05-06 20:01:43
907
原创 C++-类和对象-封装
C++面向对象的三大特性为:封装、继承、多态。C++认为万事万物皆为对象,对象有其属性和行为。对象即是个体,人可以作为对象,每个人的属性有姓名,年龄,身高,体重……,行为有走路,跑步,吃饭……车可以作为对象,每辆车的属性有车牌,轮胎,方向盘……,行为有前进,倒退,开空调……具有相同性质的一类对象,我们将其抽象称为类,人属于人类,车属于车类。
2025-05-03 22:18:22
354
原创 PAT (Basic Level) 1012 数字分类(c++)
每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。对给定的 N 个正整数,按题目要求计算 A1~$$A_5$$ 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。这里A2需要注意一下,不能使用A2==0作为条件判定,因为交错求和结果可能为0.若分类之后某一类不存在数字,则在相应位置输出。
2025-05-02 22:45:32
281
原创 PAT (Basic Level) 1011 A+B 和 C(c++)
给定区间 [−231,231] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。
2025-05-02 20:49:51
149
原创 数据结构入门-二叉树与遍历
二叉树(Binary Tree)是n(n>=0)个节点所构成的集合,它或为空树(n=0),或为非空树,对于非空树T:(1)有且仅有一个称为根的节点。(2)除根节点外的其余节点分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树,且T1和T2本身又都是二叉树。(3)二叉树每个节点至多只有两颗子树。(4)二叉树的子树有左右之分,其次序不能任意颠倒。
2025-04-30 21:38:04
1247
原创 数据结构入门-表达式求值
中缀表达式是人类能够理解的数学计算式,而后缀表达式是计算机能够理解的计算式,二者稍有不同,今天我们来学习如何计算后缀表达式的值以及如何将中缀表达式转换为后缀表达式。
2025-04-27 20:17:22
434
原创 数据结构入门-队列
队列(queue)是一种先进先出(Fisrt in First Out,FIFO)的线性表,它只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一段称为队尾(rear),允许删除的一端则称为队头(front)。假设队列为区(a1,a2,…an),那么a1就是队头元素,an就是队尾元素。队列中的元素按照a1,a2,…an的顺序进入,退出队列也按照这个顺序依次退出,也就是说,只有在a1,a2,…an-1都离开队列之后,an才能退出队列。
2025-04-26 21:40:32
644
原创 数据结构入门-栈
(stack)是限定仅在表尾进行插入或删除操作的线性表。其表尾端称为(top),表头端称为(bottom),不含元素的空表称为。假设S=(a1,a2,…an),则称a1为栈底元素,an为栈顶元素。栈中元素怒按照a1,a2,…an的顺序(又称为压栈),退栈的第一个元素应为栈顶元素。因此,栈的修改是按照先进后出的原则进行的,它又被称为后进先出(Last In First Out,LIFO)的线性表。栈是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,即栈顶。
2025-04-26 17:52:04
400
原创 PAT (Basic Level) 1005 继续(3n+1)猜想(c++)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。
2025-04-25 21:53:56
232
原创 PAT (Basic Level) 1010 一元多项式求导(c++)
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。
2025-04-25 21:08:24
216
原创 PAT (Basic Level) 1008 数组元素循环右移问题(c++)
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
2025-04-25 21:01:40
133
原创 PAT (Basic Level) 1007 素数对猜想(c++)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。
2025-04-25 20:59:35
162
原创 PAT (Basic Level) 1006 换个格式输出整数(c++)
让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(<10),换个格式来输出任一个不超过 3 位的正整数。例如234应该被输出为BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
2025-04-25 20:56:29
221
原创 PAT (Basic Level) 1004 成绩排名(c++)
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
2025-04-24 19:57:37
163
原创 PAT (Basic Level) 1003 我要通过!(c++)
是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“”大派送 —— 只要读入的字符串满足下列条件,系统就输出“”,否则输出“得到“PATxPATxxAaPbTcaPbATcaabcA现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“”的。
2025-04-24 19:55:21
337
原创 PAT (Basic Level) 1001 害死人不偿命的(3n+1)猜想(c++)
卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……
2025-04-24 19:41:47
235
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅