自定义博客皮肤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)
  • 收藏
  • 关注

原创 二叉树的前中后序遍历

递归方式:// 前序遍历void PreorderTraversal(Node *root) { if (root == NULL) { // 空树 return; } printf("%d ", root->val); // 根 PreorderTraversal(root->left); // 前序遍历左子树 PreorderTraversal(root-...

2019-08-06 23:02:45 136

原创 如何创建一个二叉树?

用前序序列来创建一个二叉树,但单纯用前序序列无法还原一个二叉树,我们还需要把空节点加入进去。这是一颗我网上随便找的二叉树,它的前序序列是1,2,4,8,9,5,10,11,3,6,12,7我们加入空节点,用0表示,1,2,4,8,0,0,9,0,0,5,10,0,0,11,0,0,3,6,12,0,0,0,7,0,0这样我们就可以用代码来还原一个二叉树了。//这是二叉树的节点,分别可以指...

2019-08-05 21:40:46 11182

原创 C++找出只出现一次的数字

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。答案:class Solution {public: int singleNumber(vector<int>& nums) { int value = 0; for(int i = 0;i < nums.size()...

2019-07-29 17:08:02 1237

原创 模拟实现string类

#pragma once#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cassert>using namespace std;class String{public: typedef char* iterator; typedef const char* const_iterator...

2019-07-27 22:31:41 119

原创 C++引用总结

引用其实就是给一个存在的变量取一个别名,就像给人取外号一样。编译器不会给引用变量开辟内存空间,它和引用的变量公用一快内存空间。引用的规则是:类型& 引用变量名 = 引用实体;如:test(){ int a = 10; int& ra = a; cout<<a<<' '<<ra<<endl;}注意:引用类型必须和引用...

2019-05-16 20:18:00 121

原创 C++函数重载总结

在c++中,同一作用域中可以声明几个功能类似的同名函数,但它们的参数列表必须不同。如:int Add(int left, int right){ return left+right;}double Add(double left, double right){ return left+right;}long Add(long left, long right){ retur...

2019-05-16 19:56:07 216

原创 C++的输入输出

在学习c语言时,我使用的第一个函数就是printf().当时向屏幕上打印了:“hello world"。在学习c++时,我第一个学习的也是它的输入输出,而且c++的输入输出更加方便,不需要增加数据格式控制,不需要记%d是整型之类的。我们来看下c++是如何实现输出的:#include <iostream>using namespace std;int main(){ cout...

2019-05-16 19:35:53 138

原创 linux基础命令总结

01. ls 指令语法:ls 选项 目录或文件功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a 列出目录下的所有文件,包括以.开头的隐含文件。-d 将目录像文件一样显示,而不是显示其下的文件。如 ls -d 指定目录-i 输出文件的i节点的索引信息。ls -ai指定文件-k 以k字节的形式表示文件的大小。ls -alk 指定文件...

2019-04-10 22:42:45 214

原创 C++命名空间总结

命名空间简介在c++中,变量、函数和类都是大量存在的,如果都在全局作用域中,可能会导致很多冲突。使用命名空间的目的就是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。命名空间定义定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即可为命名空间的成员。//普通命名空间namespace N...

2019-03-13 20:14:46 205

原创 模拟实现字符串函数

文章目录模拟实现strcpy模拟实现strcat模拟实现strstr模拟实现strchr模拟实现strcmp模拟实现strcpy#include &lt;stdio.h&gt;#include &lt;windows.h&gt;#include&lt;stdlib.h&gt;#include&lt;assert.h&gt;void Strcpy(char *str2, char *st...

2018-11-24 22:59:32 125

原创 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以喝多少汽水。

这道题有两种答案,39和40。喝39瓶,最后会剩一个空瓶在自己手里。如果你借一个空瓶,可以再换一瓶饮料,喝完后再还回去,这样就可以喝40瓶了。但我的代码是按照39瓶写的。这道题的重点是在换了5瓶后,5不能被2整除,这时我们需要把余数1保存到空瓶数量中,这样就能得到正确的结果。#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;windows.h&amp;gt;void ...

2018-11-06 21:55:50 298

原创 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。

我的思路:异或可以使相同的数字为零,以此为条件,我们可以把数组中出现两次的数字都置零,单个出现的保留,嵌套循环之后,数组中只剩下单个出现的数字#include &lt;stdio.h&gt;#include &lt;windows.h&gt;void Find_num(int arr[],int len){ int ret = 0; int i = 0; int j = 0;...

2018-11-05 23:37:46 238

原创 左移字符串

实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB#define _CRT_SECURE_NO_WARNINGS#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;windows.h&amp;amp;gt;#include &amp;amp;lt;string.h&amp;amp;gt;#include &a

2018-11-03 22:19:40 175

原创 如何求10 个整数中的最大值?

#include &lt;stdio.h&gt;#include &lt;windows.h&gt;int main(){ int a[10 ] = { 1,2,3,4,5,6,7,8,9,10 }; int i = 0; int max = 0; for (i = 0; i &lt; 10; i++) { if (a[i] &gt; a[i + 1]) { max=...

2018-11-01 23:08:56 115

原创 翻转字符串

有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".#include &lt;stdio.h&gt;#include &lt;windows.h&gt;int m_strlen(char* str){ int count = 0; while (*str) { count++; str++; } return ...

2018-10-31 13:49:44 108

原创 一组数据中只有一个数字出现一次,其他所有数字都是成对出现的。请找出这个数。(使用位运算)

连续异或即可得到这个数#include &lt;windows.h&gt;#include &lt;sdilo.h&gt;int find(int a[],int len){ int ret = 0; int i = 0; for (i = 0; i &lt; len; i++) { ret ^= a[i]; } return ret;}int main(){ in...

2018-10-31 12:54:21 142

原创 如何不使用(a+b)/2这种方式,求两个数的平均值?

第一种: 一个数右移一位等于一个数除以2 (a+b)&gt;&gt;1#define _CRT_SECURE_NO_WARNINGS 1#include &lt;stdio.h&gt;#include &lt;windows.h&gt;int main(){ int a = 0; int b = 0; scanf("%d%d", &amp;a, &amp;b); printf(...

2018-10-30 17:37:01 129

原创 如何将一个数的二进制位模式从左到右翻转

一个数的二进制是由位组成,我们需要对它的每一位进行操作。第一位翻转:20 —&amp;amp;gt; 2(31-0)第二位翻转:21 —&amp;amp;gt; 2(31-1)第三位翻转:22 —&amp;amp;gt; 2(31-2)第 i 位翻转: 2i-1 —&amp;amp;gt; 2(31-i)数字value第i位翻转之后的数值大小:(value&amp;amp;gt;&amp;amp;gt;i

2018-10-30 17:11:33 1309

原创 浅谈变量交换

如何交换两个整型变量的内容呢?我给出三种方法与大家分享。方法一 :三变量法#define _CRT_SECURE_NO_WARNINGS 1#include&lt;stdio.h&gt;#include&lt;windows.h&gt;int main(){ int a = 0; int b = 0; int temp = 0; scanf("%d%d", &amp;a, ...

2018-10-09 20:54:40 95

原创 用C语言输出任意行列乘法口诀表

环境: win10 vs2017#include &lt;stdio.h&gt;void table(a){ int i = 0; int j = 0; for (i=1; i &lt;= a; i++) { for (j=1; j &lt;= i; j++) { printf("%d*%d=%2d ", i, j, i*j); } printf("\n")...

2018-10-09 20:38:01 614

原创 求100到1000之间的素数

环境:win10 vs2017方法一#include&lt;stdio.h&gt;#include&lt;windows.h&gt;int main(){ int i = 0; int count = 0;//计算素数的个数 for (i = 100; i &lt;= 1000; i++) { int j = 0; for (j = 2; j &lt;i; j++) ...

2018-10-09 20:31:50 13024

原创 时间复杂度总结

算法的效率效率指的是算法执行的时间。对于同一个问题如果有多个算法可以解决,执行时间短的算法效率更高。但同一个算法用不同的语言实现,或者用不同的编译环境进行编译,或者在不同的计算机上运行时,效率均不同。这说明用绝对的时间单位衡量算法的效率是不合适的。 所以我们可以用算法中基本操作重复执行的次数来衡量一个算法的好坏时间复杂度一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函...

2018-04-08 15:23:20 408

空空如也

空空如也

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

TA关注的人

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