- 博客(32)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 判断一棵二叉树是否为完全二叉树
1.完全二叉树的特点(来自专业定义)看到上面完全二叉树的特点,我可以将其特点按照自己的理解归纳为以下几点:(1):若二叉树最下面一层有节点出现,那么这个节点一定是是从左到右依次排列,若只有一个孩子,那么这个孩子一定是左孩子而不是右孩子(特殊情况,空树和只有根节点的树都是完全二叉树)。(2)要么最后一层全为叶子节点,否则以它为根节点的孩子一定是从左依次排列的)。2.解决这个问
2016-07-16 20:46:15
15646
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 cut、sort及uniq工具简介
一、cut工具1.cut工具在文件中负责剪切数据,以行为一个对象进行处理,在这个点上与工具sed是一样处理机制的。2.cut用法 ,cut命令主要接受三个定为方法:(1)按照字节进行剪切,使用选项-b(如下例子)(2)按照字符进行剪切,使用选项-c(如下例子)(3)按照域进行剪切,使用选项-f(如下例子,-d用来指定域)二、sort工具1.sort如
2016-05-09 18:14:27
1435
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 awk工具简介
在上一篇学习sed的基础上,本篇提到的是比sed更高级更好使用的工具(其实awk是一种想shell的但更加复杂的脚本语言)------awk.sed是以行为单位处理文件的,而awk的优势在于,它不仅能以行进行处理,还能以列为单位处理文件,awk缺省的行分隔符为换行,缺省的列分隔符为连续的空格和Tab,当然这里的行或者列分隔符都可以自行定义。1.awk命令行的基本形式:awk +选项+'描述'
2016-04-30 20:45:35
1707
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 sed 工具简介
sed工具全称为流式编辑器,它可以被使用作为行过滤器(顾名思义sed是按照行查找进行操作的),它的工作原理可以描述为:把前一个程序的输出引入到sed的输入,经过一系列编辑命令转换为另外一种格式输出。(形象的解释如下图所示)以前学习到grep默认是在Basic模式下工作,这里的sed工具如grep一般,也是默认在Basic模式下工作,sed也支持正则表达式的使用,使用正则表达式是在"/"
2016-04-25 12:58:13
2655
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 shell基础之符号与语法
shell脚本现在已经成为了一种非常普遍的脚本语言,之所以如此广泛的被应用,毋庸置疑它是有它的独到之处的。shell脚本语言和其他的语言比如说c/c++有何不同呢?c/c++等语言属于编译型语言,也就是说程序每次执行前都要经过编译生成可执行的二进制文件方可;而shell属于解释型语言,它必须依赖解释器来逐行解释命令,现在我们所熟知并常用的解释器为bash解释器。那么以后学习使用一门解释型语言的时候
2016-04-16 17:28:04
1381
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 linux(centos)下安装git并上传代码些许步骤(亲自验证过的步骤)
以前听说了好多次github,但直到最近才第一次学习使用github来托管自己在linux下的代码!说实话,我自己在使用的时候从网上查了好多教程,但总觉得难以掌握(步骤过于繁琐),自己操作的时候还是蛮复杂的!(老实说是自己的理解能力不够)不过最终还是通过自己的摸索,学会了装载github并使用命令上传代码进行托管。 首先在使用git托管自己的代码之前,先要去git官方网站注册一个账号(注
2016-04-09 15:22:20
3900
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 网络编程----------SOCKET编程实现简单的TCP协议
首先我们需要大致了解TCP的几点知识:1.TCP的特点:面向连接的可靠性传输2.TCP的三次握手建立连接和四次挥手释放连接,但为什么TCP要三次握手建立连接呢?答:因为两次握手无法保证可靠性,若最后一次失败,则客户端youhui3.TCP为何是面向连接的?答:因为TCP是传输层的协议,传输层的下层是网络层,IP协议就是网络层的协议,但是IP只提供尽力而为的的传输机制;而传输层的
2016-03-27 13:30:43
1302
原创 C知识点整合
C语言总结一.语法 1.常见的数据内置类型所占字节(64位下):char(1) int(4) float(4) long(4)double(8) _Longlong(8) 2.变量:(1)定义:类型+变量名,c语言中规定使用变量前必须在程序 开始部分就定义并进行初始化(防止随机值),(2)变量的存储类型决定变量的生命周期(普通内存,运行时堆栈,硬件寄存器)
2016-05-31 08:38:20
673
原创 Linux下的桥接模式和Nat模式的区别
先来看一下linux在的桥接模式和Nat模式的差别:桥接模式:Nat模式:真正的接触这个问题是因为同学要给我远程传输文件,这个时候就调节至桥接模式下,进行ping.尽管我们用的是同一无线网络,但是不在一个网段,所以自然是无法ping通的。在这里,我了解学习了虚拟机中的三种模式:桥接模式和Net模式以及仅主机模式桥接模式: 在桥接模式下,VMWare虚拟出来的
2016-05-26 12:19:07
15874
9
原创 浅谈静态成员
静态成员这个概念是在C++中首次提出的,它是为了解决一个或者多个成员为所有的对象共用问题。静态成员包括静态数据成员和静态成员函数,所以下面分别就两方面来介绍学习。 一.静态数据成员这里先来举一个例子来看看静态数据成员到底啥时候被使用(下面的这个为学生类)#include#includeusing namespace std;class Student{public: Stu
2016-04-29 23:24:18
549
原创 select版的TCP通信
编写代码之前,大概先说一下利用select编写tcp的思路及select特点。 select系统调用是用来让程序监视多个文件句柄的状态变化的,程序会停在select这里等待,直到被监视的句柄有一个或者多个发生了状态改变。select函数为:int select(int nfds,fd_set *readfds,fd_set* writefds,fd_set
2016-04-27 15:49:11
1970
原创 grep使用简介
初期使用grep命令最常见的是查找一个进程,使用的命令为:ps aux | grep +进程文件名 //这条命令语句就在系统中为我们找出满足要求的进程 当然,这只是grep命令使用的一个微小方面。以下将是详细的学习介绍grep命令。 grep命令被称为行过滤工具,它通常被用来进行模式匹配形式的查找。那什么又叫模式匹配呢?模式匹配是说不在限定要查找的具体的key值,而是通过一定的
2016-04-21 17:32:15
683
原创 shell脚本程序
学习shell脚本是需要经过大量的练习来巩固语法的(就像我们当初学习C语言是一样的)。下面为自己在用shell编写的脚本程序。1.求1.....100所有数的总和(程序如下)#! /bin/bashi=0sum=0for (( ; i<=100; ++i ))do let sum+=idone echo $sum最终输出结果为50502.使用递归的方法求
2016-04-18 21:06:26
505
原创 linux下的内置命令
谈到linux下的内置命令,说实话,在学习shell脚本之前本没有听说过,更不知道它和linux下一般的命令有何不同!解释内置命令之前,先来看一个例子:建立一个shell脚本,内容如下:#! /bin/bashls cd ..在这个脚本中,我们可以注意到有一个命令-----> cd .. ,按照以前直接在命令行上的经验,执行这个脚本后会先显示出本目录下的所有文件后回退到上层目录是吧!下面
2016-04-13 15:54:51
3057
转载 HTTP协议详解
引言 (红色字体标出的为该协议中需要注意的以及我自己的理解) HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTT
2016-04-13 08:26:18
484
原创 I/O多路转接复用机制---select,poll,epoll
首先提出一个比较基础的但对后面理解有帮助的知识点,就是I/O模型有哪几种?一次I/O的过程是怎样的?(1)按照等待方式的不同,我们可以将I/O模型分为5类,如下表格: 阻塞I/O 非阻塞I/O 多路复用I/O
2016-04-12 17:19:29
746
原创 shell具体执行过程及自主实现shell解释器
在编写shell解释器之前,先来分析几个知识点:(1)shell执行命令时步骤:(如下图)(2)shell执行脚本时的步骤:(如下图) 在这里,有一个知识点必须知道,那就是shell命令下的内建命令,(内建命令在命令行上一般是直接由bash直接执行后退出的,这是因为磁盘上没有对应的可执行程序供系统执行程序替换,所以自然而然也不会创建子进程喽;而如果在shell脚本
2016-04-11 10:33:09
3990
3
原创 Windows下使用git bash 出现乱码解决办法
前几天下载使用Windows下的gitbash时出现了乱码的问题,以致无法使用命令查看文件名。不过经过不懈的查找资源,最终还是解决了该问题!甚是高兴!,首先在桌面上右键git bash,输入ls命令则会出现下面的乱码界面,是不是很伤心!下面就是解决的办法啦!进入到/etc目录下,按照下面程序依次修改文件的内容!1.执行vi gitconfig 命令,进入vi编译
2016-03-30 18:07:17
1949
原创 在centos6.5下安装MySQL遇到的些许问题
因为要使用数据库所以在linux下安装了MySQL,但其间遇到了不少问题,不过还好最后都解决了。以下操作就是安装MySQL的步骤以及问题分类解决。1.卸载本机原有SQL时报告了以下错误:error: package mysql is not installed 解决方法:rpm -e --nodeps+自己虚拟机的sql信息( 我的SQL信息如下:mysql-libs-5.1.
2016-03-28 21:57:04
666
原创 strcpy函数
strcpy通常用来实现将一个字符串复制到一个字符数组中它的一般形式为:(字符数组1,字符串2),作用是将字符串2复制到字符数组1中去。例如:char str1[10],str[2]="china"; strcpy(str1,str2);执行后,str1的状态如下:china\0\0\0\0\0
2015-05-21 11:39:55
1159
原创 用结构体编写电话通讯录
编写电话通讯录,首先必须的有联系人的信息:姓名,年龄,性别, 电话,地址然后分别用添加函数,删除函数,查找函数,修改函数,显示函数,清空函数来实现通讯录void add(Pcon pcon);//添加函数void del(Pcon pcon);//删除函数void search(Pcon pcon);//查找函数void modify(Pcon pcon);//修改函数vo
2015-05-19 16:53:10
1953
1
原创 可变参数列表
//用调用函数的方法来求5个数的平均值#include int aver(int value, int n1, int n2, int n3, int n4, int n5){ double sum = n1; if (value >= 2) sum += n2; if (value >= 3) sum += n3; if (value >= 4) s
2015-05-12 17:46:35
349
转载 贪婪算法和动态规划
贪婪算法所谓贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择(注意:是当前状态下),从而希望导致结果是最好或最优的算法。贪婪算法最经典的一个例子就是哈夫曼编码。对于人类来说,一般人在行为处事的时候都会使用到贪婪算法,比如在找零钱的时候,如果要找补36元,我们一般会按这样的顺序找钱:20元,10元,5元,1元。 或者我们在过十字路口的时候,要从到对
2015-05-11 22:38:44
1572
原创 分别用迭代和递归来实现阶乘
#include int jiecheng(int n)//阶乘函数,参数为整型{ int result=1; while(n>0)//只要n值大于0,进入循环 { result*=n; n-=1; }//在这里,result可以保存前面计算的值,这样大大减少计算的次数,达到了优化 return result;}int main(){ i
2015-05-11 22:27:02
1209
原创 计算一个数的N次方
计算一个数的N次方时,我们先设定两个参数n和k,n表示你要输入的数,k表示这个数的次方。这个时候我们必须对次方数k作出分类:{ k=0:return 1;
2015-05-10 14:32:00
3675
原创 厄密多项式
厄密多项式满足以下函数原型 int hermite(int n,int x)h(n,x)={ n n=1:2*x; n>=2:2*x*h(n-1,x)-2*(n-1)h(n-1,x); } 看到这个式子,我们就可以用选择语句三层嵌套来实现它。#include int hermite
2015-05-10 13:35:21
761
原创 九九乘法表
九九乘法表是我们小学就学的,那怎么用C程序来写出它呢!首先写出几个式子:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ...........
2015-05-09 22:45:32
430
原创 实现数组的初始化,排序,打印,清空
#include #include void init(int arr[],int len){ int i; for(i=0;i<len;i++) { arr[i]=len-i; }}void sort(int arr[],int len){ int temp,i,j; for(i=0;i<len;i++) { for(j=0;j<l
2015-05-08 13:06:05
423
原创 翻转字符串i am a student
翻转字符串 i am a student 为student a am i我们可以先把字符串通过指针整体翻转为tneduts a am i, 然后在依次局部进行转换#include int main() { char str[]="I am a student"; printf("%s\n",str); char *l,*r; char temp;
2015-05-07 22:12:11
615
原创 strcmp函数
先来回顾一下strcmp函数它的一般形式为 strcmp(字符串1,字符串2)它的作用是比较字符串1和字符串2,例如strcmp("china","korea");字符串比较的规则是:将两个字符串自左向右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'终止比较的结果由函数值带回:(1)如果字符串1=字符串2,则函数值为0;(2)如果字符串1>字符串
2015-04-17 17:49:55
2105
原创 求字符串长度(迭代法和递归法)
咱们先来复习一下strlen函数: strlen(字符数组) 它是测试字符串长度的函数,函数的值为字符串中的实际长度(不包括'\0'在内),例如: char str[10]='"china"; printf("%d",strlen(str)); 输
2015-04-17 17:12:50
1508
原创 猴子吃桃问题
猴子吃桃是一个经典的问题,在这里我们可以用到C语言递归函数来实现,或者直接用C语言中的循环语句。鉴于我们课程的进度,今天我先用简单循环语句来实现,递归方法后面我会补上。 首先我们分析一下题目中的要点:猴子每天吃前一天桃的一半加一个,到第十天的时候就只剩下一个,那么一共摘了多少桃? #include int main() { int i,s; s=1
2015-04-16 12:42:39
542
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人