LeetCode刷题(11)【简单】回文数&罗马数字转整数(C++)
回文数题目链接——回文数
代码示例:
1234567891011121314151617181920212223242526272829303132class Solution {public: bool isPalindrome(int x) { if(x < 0) { return false; } else { int ret = 0; int temp = x; while(temp) { if (ret > INT_MAX / 10 || ret < INT_MIN / 10) { return 0; } ret = ret*10 + temp% 10; temp /= 10; } if(ret == x) { r ...
LeetCode刷题(10)【简单】反转整数(C++)
题目链接:——反转整数代码示例:
12345678910111213141516171819202122class Solution {public: int reverse(int x) { int ret =0; while(x) { //有符号整数溢出 //如果这个数比最小的数去掉一位要小,或者比最大的数去掉一位要大 //那么将他*10后得到的最后结果肯定是要大(小),肯定溢出了。 //并且要先在*10之前判断,否则就溢出了 if (ret > INT_MAX / 10 || ret < INT_MIN / 10) { return 0; } ret = ret*10+x%10; x /=10; } return ret; }};
题解:
1234567891 ...
黑马程序员C++课程笔记总结
黑马程序员C++视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难
笔记列表&对应视频
基础部分(1-83)——如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。
核心部分(84-146)——C++核心编程部分
案例1(147-166)——职工管理系统——C++实现职工管理系统
进阶部分(167-263)——C++提高编程部分
案例2(264-281)——演讲比赛流程管理系统——C++实现演讲比赛流程管理系统
案例3(282-314)——C++实现机房预约系统——C++实现机房预约系统
C++实现机房预约系统
相关视频——黑马程序员C++(282-314)
基础部分(1-83)——如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。
核心部分(84-146)——C++核心编程部分
案例1(147-166)——职工管理系统——C++实现职工管理系统
进阶部分(167-263)——C++提高编程部分
案例2(264-281)——演讲比赛流程管理系统——C++实现演讲比赛流程管理系统
C++实现机房预约系统系统要求
代码实现globalFile.h
123456789101112#pragma once//管理员文件#define ADMIN_FILE "admin.txt"//学生文件#define STUDENT_FILE "student.txt"//教师文件#define TEACHER_FILE "teacher.txt"//机房信息文件#define COMPUTER_FILE "computerRoom.txt"//订单文件#define ORDER_FILE &quo ...
C++实现演讲比赛流程管理系统
相关视频——黑马程序员C++(264-281)
基础部分(1-83)——如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。
核心部分(84-146)——C++核心编程部分
案例1(147-166)——职工管理系统——C++实现职工管理系统
进阶部分(167-263)——C++提高编程部分
演讲比赛流程管理系统演讲比赛程序需求
程序功能
代码实现Speaker.h
123456789#pragma once#include<iostream>using namespace std;class Speaker{public: string m_Name; double m_Score[2];//两轮得分};
SpeechManager.h
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#pragma once#include<iostr ...
C++提高编程部分
相关视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难-(167-263)
基础部分(1-83)——如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。
核心部分(84-146)——C++核心编程部分
案例1(147-166)——职工管理系统——C++实现职工管理系统
C++提高编程本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层次的使用
模板模板的概念模板就会通用的模具,大大提高复用性。
例如生活中的一寸照片、PPT模板。
模板的特点:
模板不可以直接使用,它只是一个框架
模板的通用并不是万能的
函数模板
C++另一种编程思想称为泛型编程,主要利用的技术就是模板
C++提供两种模板机制,函数模板和类模板。
函数模板语法函数模板作用:建立一个通用的函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
语法:
12template<typename T>函数声明或定义
解释:template——声明创建模板
typena me——表明其后面的 符号为一种数据类型,可以用class代 ...
几种常见的排序算法
排序排序的概念排序:所谓排序就是使一串记录,按照其中的某个或者某些关键字的大小,递增或递减排列起来的操作。
稳定性:假定在待排序的记录序列中,存在多个具有相同关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i] = r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的,否则称为不稳定的。
内部排序:数据元素全部放在内存汇中的排序。
外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能再内外存之间移动数据的排序。
常见的排序算法
插入排序
直接插入排序
希尔排序
选择排序
选择排序
堆排序
交换排序
冒泡排序
快速排序
归并排序
归并排序
没有一个排序能解决所有问题,它们各有特点。
插入排序基本思想直接插入排序是一种简单的插入排序法,其思想是:把待排序的记录按照其关键码值的大小逐个插入到一个已经排好的有序序列中,直到所有的记录插入完为止,得到一个新的序列。
例如:玩扑克牌,理牌的过程。先把你的牌放到一堆,你先不要动,发完之后直接将你所有的牌拿起来,进行理牌。
**时间复杂度是O ...
C语言实现学生成绩管理系统(EasyX图形窗口)
代码文件下载链接——链接
学生成绩管理系统效果图
流程&注意要点
核心部分——EasyX显示图形界面,结构体数组和文件操作负责对数据进行各种操作。
只要一进去程序就对存储数据的文件进行读取,如果有数据直接读到学生结构体数组里面,得到当前结构体数组中的**数据数量(几个人)**,并将所有数据打印到屏幕上。
管理员用户
输入密码验证——读取文件——验证用户输入是否正确。
显示所有数据——如果通过文件读到了数据会被打印到屏幕上,反之。如果没有读到数据,在添加数据之前都会在屏幕上显示”当前记录为空!”。
各种方式的排序——对当前结构体数组中成员的数据,依照”按xx排序”,重新排序,均采用冒泡排序。其中值得注意的是,貌似EasyX的InputBox只能将你输入的内容保存到字符数组中,所以你需要将录入的成绩数据通过atof函数转化为浮点型,这里我采用的方法是: 先按照结构体数组中数据的存储顺序将每个人的某科成绩转化浮点型存储到一个成绩结构体数组中(在写这句话的时候想到,感觉也可以直接将各科的成绩存储到一个结构体数组中,然后在进行比较,可以缩减一下代码量),然后利用冒泡循环对这个存成绩 ...
C语言实现推箱子小游戏2
我的小站——半生瓜のblog
相关文章——C语言实现推箱子小游戏
推箱子
编译软件:VS2019
下载:代码文件我已经上传到GitHub
链接
下载最新的那个!(文件夹形式的)
注意
fopen scanf编译器认为的不安全报错
解决:项目属性-C/C++-预处理器-预处理定义-编辑-加入_CRT_SECURE_NO_WARNINGS
图形库函数xxx等问题
解决:项目属性-高级-字符集-使用多字节字符集
图形窗口注意贴图顺序以及参数
文件读取问题——链接
相关有帮助的文章——鼠标操作
代码实现注意:
被注释的代码大多数是命令行窗口的,少量是根本就没用的代码(没删)。
注释很多
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 ...
C++实现职工管理系统
相关视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难-(147-166)
基础部分(1-83)——如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。
核心部分(84-146)——C++核心编程部分
职工管理系统管理系统需求职工管理系统可以用来管理公司内所有员工的信息本教程主要利用C++来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责
普通员工职责:完成经理交给的任务
经理职责:完成老板交给的任务,并下发任务给员工
老板职责:管理公司所有事务
管理系统中需要实现的功能如下:
退出管理程序:退出当前管理系统
增加职工信息:实现批量添加职工功能,将功能信息录入到文件中,职工信息为:职工编号、姓名、部门编号
显示职工信息:显示公司内部所有职工的信息
删除离职职工:按照编号删除指定的职工
修改职工信息:按照编号修改职工个人信息
查找职工信息:按照职工的编号或者职工的姓名进行查找相关的人员信息
按照编号排序:按照职工的编号,进行排序,排序规则由用户指定
清空所有文 ...
C++核心编程部分
相关视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili(84-146)
基础部分(1-83)——如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。https://blog.csdn.net/qq_51604330/article/details/117753463?spm=1001.2014.3001.5501)
C++核心编程部分内存分区模型
代码区:存放函数的二级制代码,由操作系统进行管理的
全局区:存放全局变量和静态变量以及常量
栈区:由编译器自动分配释放,存放函数的参数值,局部变量等
堆区: 由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
内存四区意义:不同区域存放的数据,赋予不同的声明周期,给我们更大的灵活编程
程序运行前在程序编译后,生成了exe可执行文件,未执行该程序前分为两个区域。
代码区:
存放cpu执行的机器指令
代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份打码即可
代码区是只读的,使其只读的原因是防止程序意外的修改了它的指令
全局区:
全局变 ...
迟到的windows11虚拟机初体验
迟到的windows11虚拟机初体验
近日微软发布了继win10“最后一个版本”的windows11,相信很多小伙伴早已一睹为快,而我呢当时也是立即就了解到这个事情了,只不过一直没着急真正的感受一下。
只看更新内容的话,其中最吸引我的是可以安装原生的安卓应用,不过我在我这个版本中还没有发现这个功能,可能到了正式版才会真正推出吧。
接着咱们来看一下系统本身的变化。
我是用过几年的xp,6年的win7,加上不到1年的win10,相比win7到win10的过渡,win11在外观上没有太大的变化,主要是部分图标加了一些圆角矩形,小图标色彩变得丰富了一些。
(忽略我爆满的C盘)
还有一个最明显的变化,导航栏的位置被移动到了中间。
我觉得除了这个导航栏的位置需要一点时间来适应,大体上和win10是没有什么变化的,用习惯了win10的小伙伴应该很快就能熟练掌握。
虚拟机性能受限,部分功能体验不到位,但是我感觉到一些过渡动画发生了一些变化,要更丝滑柔和了一些,具体表现还是得等正式版发布之后再进行测试。
下面是我的安装过程
NowCoder刷题(1)【树】二叉树的遍历
二叉树的遍历(IO型)
二叉树遍历_牛客题霸_牛客网 (nowcoder.com)
题目描述
如图所示的这棵树
前序输出结果为
A-B-D-#-#-E-#-#-C-#-#
还原过程
示例1
示例2
——前序遍历还原
代码实现:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include<stdio.h>//定义一棵树的结构typedef struct TreeNode{ struct TreeNode* left; struct TreeNode* right; char val;}TreeNode;//根据前序遍历还原这棵树TreeNode* CreatBackTree(char* a, int* i){ if (a[*i] == '#') { //井号说明该结点为空 ++(*i); return NULL; } TreeNode* roo ...
LeetCode刷题(9)【树】前序&平衡&深度
二叉树知识回顾——【树】之二叉树(C语言)(含图解)_半生瓜のblog-CSDN博客
二叉树的前序遍历
144. 二叉树的前序遍历 - 力扣(LeetCode) (leetcode-cn.com)
本题中,对于C++或者Java等语言,返回的是它们的数据结构库里面的数据结构,而C语言没有,这也就是如果用C语言往后通吃数据结构会困难的原因。
注意本体的传参,操作的是不是一个数。
123456789101112131415161718192021222324252627282930313233343536373839/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; *//** * Note: The returned array must be malloced, assume caller calls free(). */ //计算结点个数 ...
Hexo-Butterfly添加天气插件
我的小站——半生瓜のblog
感谢糖果屋Akilar老哥的帮助——Akilarの糖果屋
Hexo-Butterfly添加天气插件效果如图所示:
就是JS插件的字体大小我不会调,稍微有一点瑕疵,不过影响不大。
我用的是心知天气的天气插件(其他天气插件同理)。
首先,先到心知天气的官网注册一个账号——心知天气。
登录,申请一个免费版,然后在产品的下拉栏中选择天气插件,然后点击立即免费使用。
然后,在下面选择显示参数。
点击生成代码并复制。
打开主题文件目录
打开nav.pug
将下面这行代码放入合适的位置
1<div id="tp-weather-widget"></div>
例如:
保存并关闭
接着,在此路径下创建一个JS文件,名称随意。
打开,将刚才复制代码中的 中间的内容粘贴进去。
就是将下图中画横线的代码删除。
保存并关闭
最后,找到主题配置文件_config.yml
打开,在inject处引入刚才创建的JS文件(注意文件名称)。
保存并退出
hexo clean&&hexo g&&hexo ...
【树】之二叉树(C语言)
树树的概念及结构树的概念树是一种非线性的数据结构,它是由n(n >= 0)个有限结点组成的一个具有层次关系的集合,把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
有一个特殊的结点,称为根结点,根节点没有前驱结点。
除跟根结点外,其余结点被分成M(M>0)个互不相交的集合T1、T2……Tm,其中每一个集合Ti(1<=i<=m)又是一棵结构与树类似的子树。每颗子树的根节点有且只有一个前驱,可以有0个或多个后继。
因此,树是递归定义的。
结点的度:到底有多少个链接的子节点
叶子结点或终端结点:度为0的结点称为叶子结点,
节点的度:一个节点含有的子树的个数称为该节点的度;如上图:A的为6
叶节点或终端节点:度为0的节点称为叶节点;如上图:B、C、H、I..等节点为叶节点非终端节点或分支节点:度不为0的节点;如上图:D、E、F、G…等节点为分支节点
兄弟节点:具有相同父节点的节点互称为兄弟节点;如上图:B、C是兄弟节点
树的度:一棵树中,最大的节点的度称为树的度;如上图:树的度为6
节点的层次:从根开始定义起,根为第1层,根的子节点为第 ...
LeetCode刷题(8)【栈&队列】用栈实现队列(C语言)
用栈实现队列
232. 用栈实现队列 - 力扣(LeetCode) (leetcode-cn.com)
相似题目——用队列实现栈
LeetCode刷题(7)【栈&队列】用队列实现栈(C语言)_半生瓜のblog-CSDN博客
思路:
用栈实现队列要比用队列实现栈要简单一些,我们不用来回在两个栈里面导数据,只需要导一次,然后在依次出栈就成功实现队列的出队操作了。
结论:
入数据往push栈里面入
出数据从pop栈里面出,如果里面有数据,直接出,没有就把push栈里面的数据导过来,然后再出。
代码实现:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 ...
LeetCode刷题(7)【栈&队列】用队列实现栈(C语言)
用队列实现栈
225. 用队列实现栈 - 力扣(LeetCode) (leetcode-cn.com)
目的:用队列实现栈,从先进先出——>先进后出,
1234这四个数据依次从队列1的队尾进入,要让4先出,一个队列是无法实现的,所以这里的队列2就排上用场了,我们可以利用队列2来进行导数据。
将123依次由队列2的队尾进入到队列2中,此时队列1中还剩一个4,将4弹出,同理,再将12依次进入到队列1中,将3弹出……
也就是说。
出数据把不为空的 队列数据向为空的队列中导,知道剩最后一个。
入数据向不为空的队列入。
始终保持一个队列为空,一个不为空。
队列的实现——队列的实现——【线性表】之队列_半生瓜のblog-CSDN博客
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939 ...
如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。
相关视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili(1-83)
我知道这个视频早已经被很多人学习并且记录笔记,但是我还是想再过一遍前面的基础知识点,所以我这个笔记会非常的简洁,适合有C语言基础的小伙伴进行简单的基础知识复习,好尽快投入到C++的学习中。
在基础知识部分,好像只有头文件的引用和输入输出函数发生了变化。
头文件下加入using namespace std;
#include<stdio.h>——>#include
printf——>cout
scanf——>cin
C++有字符串类型string,这是C语言所不具备的。
下面就让我们开始吧!
Hello C++第一个程序12345678#include <iostream>using namespace std;int main(void){ cout << "Hellow world" << endl; system("pause"); return ...
LeetCode刷题(6)【栈】有效的括号(C语言)
有效的括号
20. 有效的括号 - 力扣(LeetCode) (leetcode-cn.com)
思路:是左括号,就入栈,是右括号,就与栈顶的左括号判断是否匹配,如果匹配,继续,不匹配就终止。
从第79行开始,前面都是实现栈以及其功能接口。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131typedef char StackDataType;typedef struct Stack{ StackDataType* arry; int top;//指向栈 ...