自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 数据结构学习

所有的二叉链表都基于二叉树结点的基本定义1、最关键也是最基础的一道题: 5、统计二叉树的宽度,即在二叉树的各层上,具有结点数最多的那一层上的结点总数先前序遍历求出每一层的宽度,再求出最大宽度,即树的宽度每一次递归时都会碰到一个结点,每碰到一个节点就在对应位置的数组上++,因此需要一个level来计数这是第几层6、从以t为根的二叉树中删去所有叶结点7、计算以t为根的二叉树中指点结点*p所在层次8、计算以t为根的二叉树中各结点中的最大元素的值9、以前序次序输出一颗二叉树所有结点

2022-06-16 20:30:10 170 1

原创 算法学习(持续更新)

一、认识复杂度和简单排序算法1.1 时间复杂度(忽略了N前面的常数项,只保留幂项)(1) 直接看N的幂,越小越快(当然)但对于O(N^2)和O(N)来说,你也不能武断的就判断说后者比前者更好,因为你在表示时间复杂度的时候忽略了常数项,你只能说,当实验进程无限长的时候,后者比前者更好。因此这个“好”的判断,是在数据样本足够大的时候给予的判断。(2)对于相同时间复杂度O(N) 无法用理论预估的方式来判断谁好,给予超大的样本量让两个程序去跑,直接比较时间就可以了。例:B的复杂度没有化简之前是

2022-03-16 19:58:51 1222

原创 C++ 用结构体和类创建单向链表

一、结构体#include <iostream>using namespace std;//一个链表要实现的操作有//建立链表,遍历链表,查找链表,插入和删除节点//查找和遍历某种程度上来说是一样的,反正都是扎进堆里然后去找你想要的那个数//创建链表还有两个前置条件,一个是链表头,还有一个是结点,这两个类//节点由于存放数据和下一个节点的首地址//而链表头用于存放第一个节点的首地址和链表的长度//链表如果直接用struct会简单得多,因为struct的默认权限是publ

2022-01-11 22:38:47 2351

原创 C++思路

看看就行

2022-01-05 19:11:23 862

原创 复制数组并忽略重复数据

for(i=1,y[0]=x[0],m=1;i!=k;i++) { for(j=0;j<i;j++) { if(x[i]==x[j]) break; } if(j==i) { y[m]=x[i]; m++; } }

2022-01-03 14:07:39 256

原创 文件流和输入输出流

对于文件流来说,写入可以没有这个文件,系统帮你自动创建,但读取必须要有。1、编程实现一个简单的文件加密:从键盘读入一行字符,把每个字符的ASCII值加5后存放在文件“data.txt”中。#include <iostream>#include <fstream>using namespace std;int main(){ char zifu[30]={0}; cin.getline(zifu,30); for(int i=0;zifu[i]!='\0';i+

2022-01-02 15:52:15 663

原创 #统计整数个数(指针)

以下面这题为例:题目内容:输入一个字符串,其包括数字和非数字字符,如:a123x456 17935? 098tab,将其中连续的数字作为一个整数,依次存放到数组a中,统计共有多少个整数,并输出这些数。输入格式:数字和非数字字符的字符串输出格式:1)整数个数2)分别输出整数输入样例:a123x456 17935? 098tab583【注意需要保留带有空格的字符串,请不要使用gets,cin,练习使用cin.getline(char *str, int maxnum)】输出样

2022-01-01 21:59:15 1131

原创 输出大于等于n的最小的完全平方数

思路很简单,也不知道为什么想不到,总之现在必须是会了。先开平方根,强制类型转换,再乘回去,相等就输出,不相等就+1在输出,就这么粗暴。#include <iostream>using namespace std;#include <cmath>int sf(int x0){ int x=sqrt(x0); if(x*x==x0) return x0; else return (x+1)*(x+1);}int main(){ int n; cin&gt

2022-01-01 21:32:23 471

原创 #函数递归

对于C++初学者(我)来说,函数递归的部分只需要会写数字的阶乘就可以了。了解函数递归的思想应该是最重要的。姑且写了一个猴子吃桃问题。猴子第1天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第2天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。输入1~10中的任意一个数,查询该天猴子剩下多少桃子?要求用递归函数实现问题求解。正序还是倒序第几天根本无所谓,做一个简单运算全部都看成倒过来的就可以了。关键在思想。

2022-01-01 21:08:00 77

原创 C++理论记录(持续更新)

2021-12-31 00:02:58 433

原创 #字符统计

以下面这道题为例:题目内容:输入字符串s,编程统计出s中共出现了多少个数字字符。进一步考虑,如何统计出10个数字字符各自出现的次数。输入格式:输入带数字字符的字符串输出格式:两行: 1)输出字符串中数字字符的总个数;2)一次逐行输出从数字字符‘0’到数字字符‘9’的个数,每个数字后面有一个空格。输入样例:abcdefk12345输出样例:Number's amount is:5'0...9' amount is:0 1 1 1 1 1 0 0 0 0#inc

2021-12-30 19:27:06 526

原创 C++编写过程中的一些典型错误(持续更新)

1、漏情况mooc上 给定的数字从右边取第k位当时用数组来做,有一个样例死活不通过,看了一下 是123456 k=6 也就是取第一位的情况void digit(long n,int k){ long a=n; int i=0; int b[20]={0}; int c=0; while (a) { c=a%10; a=a/10; b[i]=c;//数字记录每一位数字 i++;//算有几位数 } if(i<k) cout<<"-1"; /..

2021-12-30 19:05:15 925

原创 插入字符串

期中考试不会写的痛历历在目题目内容:从键盘输入一个字符串,并在串中的第一次出现的最大元素后边插入字符串”ab”。输入格式:任意输入一个字符串输出格式:在串中的最大元素后边插入字符串”ab”输入样例:123csCUMT输出样例:123csabCUMT#include <iostream>using namespace std;int main(){ char temp[30]; cin.getline(temp,30); char *p=t

2021-12-30 10:50:43 338

原创 找出亲密对数

题目内容:求数n之内的亲密对数。所谓“亲密对数”,即A的所有因子(包含1但不包含其本身)之和等于B,而B的所有因子之和等于A。输入格式:某个数字n输出格式:此数字n之内的亲密对数。输入样例:400输出样例:220 284两个注意点 i要从1开始取而不是从0,要不然除数是0很尴尬第二个是为了防止220 284 284 220这样的重复输出规定了一下两个数输出时的大小关系#include <iostream>using namespace

2021-12-30 10:17:08 1264

原创 C艹的强制类型转换

double x=3/4;double y=3.0/4.0; //y=3.0/4或3/4.0 都行double a=3,b=4;double z=a/b;double q=(double)3/4; //或者double q=double(3/4);double p=1.0*3/4; //最常用的是这种cout<<x<<" "<<y<<" "<<z<<" "<<q<<" "<<.

2021-12-30 09:41:57 113

原创 计算字符串中数字、字母、以及其他的数量

#include <iostream>using namespace std;int main(){ char mix[30]={0}; int numA=0,num1=0,numelse=0; cin.getline(mix,30);//因为cin会忽略掉所有前导白色空格,所以使用 cin>> 就不可能仅输入一个空格或回车符。 //详见http://c.biancheng.net/view/1350.html for(int i=0;mix[i]!='\0';i+.

2021-12-30 09:34:22 235

原创 冒泡排序以及选择排序

冒泡排序:#include <iostream>using namespace std;//姑且认为有10个数要排序好了void maopao (int a[])//由大到小排序{ int i,j; int temp; for(i=0;i<9;i++)//十个数 前九个数需要比较 { for(j=0;j<9-i;j++)//对于每一个比数循环,随着数字增加,要比的次数越来越少 //当j等于8时,即数列中的第九个数,只需要比一次 { if(a[j

2021-12-30 00:26:43 205

原创 闰年判断以及计算当前天是第几天

没啥好讲的自己看吧#include <iostream>using namespace std;int main(){ int year; int month; int day; int i=0,j=0; int total=0; cin>>year>>month>>day; if((year%4==0&&year%100!=0)||year%400==0) { cout<<year<<"

2021-12-29 22:45:05 112

原创 #数字倒序

先提供一种不完全正确的做法:#include <iostream>using namespace std;int reverse(int n){int a=n;int b=0;int x=0;while (a){ x=a%10; b=b*10+x; a/=10;}cout<<endl;cout<<b;}int main(){ int m; cin>>m; reverse(m); retur.

2021-12-29 22:19:13 104

原创 #进制转换

进制转换和数字倒序有点像,又不是那么回事,在循环中进制转换的最后一个余数是第一位而数字倒序的最后一个余数就是最后一位。也正因如此进制转换不会出现数字倒序中的问题在数字倒序中 如1200,每一次的余数都是直接加在上一个数乘10的结果中,0乘10不会有任何效果。cin>>n;int num=0;while(n){ temp=n%10; n/=10; num=num*10+temp;}//比如1564 //过程就是 4 46 465 4651

2021-12-29 22:08:45 106

原创 找到300-400范围内的所有质数

#include <iostream>#include <cmath>using namespace std;int main (){ int b=0; int x=0; int i; int num=0;//用来计数 for(x=301;x<=400;x+=2)//偶数直接就可以不考虑了 { b=sqrt(double(x)); for(i=2;i<=b;i++) { if(x%i==0) break;//找到因数就停 .

2021-12-29 16:36:39 410

原创 #判断质数#

#include <iostream>#include <cmath>using namespace std;//质数:不能被2到算术平方根整除 int main(){ int x=0; cin>>x; int b=sqrt(x); int i=0; for(i;i<b;i++) { if(x%i==0) break; } if(i>b+1) { cout<<x<<"是素数"<<.

2021-12-29 16:16:28 146

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除