自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CentOs自带mysql卸载时出现无法卸载情况的解决办法

CentOs自带mysql卸载时出现无法卸载情况的解决办法首先通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库# rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库发现出现如下情况:说明含有自带的mysql,在安装mysql之前,需要将其卸载,但是直接写在并不能将其卸载,会出现如下显示,

2017-09-11 10:12:39 609

原创 水果笔试题

水果笔试题题目:本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果,并且告知已经将所有员工喜欢吃的水果存储于一个数组中。然后让我们统计出所有水果出现的次数,并且求出大家最喜欢吃的前k种水果。 ps:要求打印出最喜欢的水果,并且效率尽可能的高。 提示:尽量STL

2017-08-03 10:55:52 1694

原创 awk的基本使用和调用方式

awk的基本使用和调用方式1.awk的基本使用与sed相比,awk不仅能以行为单位处理文件,还可以以列为单位处理文件。awk缺省的行分隔符是换行,缺省的列换行符是连续的空行和Tab,但是行分隔符和列分隔符都可以自定义,比如/ect/passwd文件的每一行有若干个字段,字段之间以:分隔,就可以重新定义awk的列分隔符为:并以列为单位处理这个文件。awk实际上是一门很复杂的脚本语言,还有像C

2017-08-02 19:01:52 640

原创 实现快速排序的非递归

实现快速排序的非递归关于排序的其他算法如冒泡、插入、希尔等排序方法

2017-08-01 23:40:06 493 1

原创 vim编辑器-多行加注释与去注释

vim编辑器-多行加注释与去注释在使用vim编辑器时,有时候需要对多行代码进行加注释或去注释,它不像我们在类似于vs等下,需要我们自己输入命令操作,下面将介绍两种方法。方法一:块选择模式1. 插入注释(1)首先按键盘上的ESC进入命令行模式(2)再按Ctrl+V进入VISUAL BLOCK模式(3)利用上下左右键调整需要注释多少行以及行的宽度(4)再按Shift+i或s

2017-08-01 09:33:49 59627 2

原创 模式空间与保持空间

模式空间与保持空间sed在正常情况下将处理的行读入模式空间(pattern space),脚本中的"sed command"就是一条接着一条进行处理,直到脚本执行完毕,然后该行被输出,模式被清空,接着重复执行刚才的动作,文件中新的一行被读入,直到文件处理完毕。一般情况下,数据的处理只使用模式空间,但在某些时候,使用保持空间(hold space),还可以带来意想不到的效果模式空间:直接

2017-07-30 23:03:33 1779

原创 正则表达式 && sed应用

正则表达式与grep一样,sed也支持特殊元字符,来进行模式查找、替换。不同的是sed使用的正则表达式是包括在斜杠线"/"之间的模式。如果要把正则表达式分隔符“/"改为另一个字符,比如o,只要在这个字符前加上一个反斜线,在字符后跟上正则表达式,再跟上这个字符即可。一般使用:(1)^:行首定位符:/^1/    匹配所有以1开头的行(2)$:行尾定位符:/^5/   匹配所有以5

2017-07-30 21:59:34 391

原创 Shell脚本的学习&&sed

Shell脚本的学习&&sed一、概念sed是流编辑器,对文本进行批量化处理。二、基本格式sed option 'script' file1 file2 ...sed option -f scriptfile file1 file2 ...sed 处理的文件既可以由标准输入重定向得到,也可以当命令行参数传入,命令行参数可以一次传入多个文件,sed会依次处理。sed的

2017-07-29 23:22:30 490

原创 将二叉搜索树转换成一个排序的双向链表

将二叉搜索树转换成一个排序的双向链表题目:将二叉搜索树转换成一个排序的双向链表。提示:要求不能创建任何新的结点,只能调整树中结点指针的指向,也就是left当prev,right当next。--中序线索化的变型。 在二叉搜索树中,每个结点都有两个指向子节点的指针,在双向链表中,每个结点也有两个指针,分别指向前一个结点和后一个结点。在二叉搜索树中,左子节点的值总是小于右子结点的值,

2017-07-29 17:22:29 800

转载 C++实现一个线程安全且高效单例类

转载自:http://www.cnblogs.com/qiaoconglovelife/p/5851163.htmlC++实现一个线程安全且高效单例类1 单例模式  我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法

2017-07-29 16:31:33 379

原创 C语言模式实现C++继承和多态

C语言模式实现C++继承和多态C实现一个struct A和struct B各包含一个int成员a和b,要求达到B继承了A的效果,也就是B里面包含一个A。并且能达到多态的效果,也就是一个A*p指向A调的是A的函数,指向B调用的是B的函数。1. 继承(1)C++的继承在C++中,可以用一个类(子类)去继承另一个类(父类),子类可以得到父类的相关属性与方法。代码实现:{C

2017-07-29 10:00:46 344

原创 Linux下的cp指令

Linux下的cp指令1.功能复制文件或目录说明:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并不是一个已存在的目录,则会出现错误信息。2.参数-a 或 --archive此参数的效果和同时指定"-dpR"参数相同-b 或 --back

2017-07-26 23:02:43 1345

原创 判断一棵二叉树是否是另一棵树的子树

判断一棵二叉树是否是另一棵树的子树题目:输入两棵二叉树A和B,判断B是不是A的子树。算法思想:可分为两步,第一步:在树A中查找是否具有和树B的根节点的值一样的结点;(实际上就是树的遍历)                                        第二步:再判断树A中以该结点为根节点的子树是不是包含和树B一样的结构。代码实现:{CSDN:COD

2017-07-26 20:03:58 910

原创 单链表的基础面试题

单链表的基础面试题1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用?(1)基于空间的考虑顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模。在静态链表中初始存储池虽然也是静态分配的,但若同时存在若干个结点类型相同的链表,则他们可以共享空间,使各链表之间相互调节余缺,减少溢出机会;动态链表的存储空间是动态分配的,只要内存空间尚有空闲,就不会有溢出。因此,当

2017-07-25 21:59:54 344

原创 求解集合A和集合B的差集

求解集合A和集合B的差集题目:已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。算法思想:取出集合A中每一个元素,与集合B中对比,找到即可删除此节点,否则保留。prev实

2017-07-25 20:43:24 7419

原创 一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。要求效率尽可能的高。

二维数组中的查找算法思想:我们可以先选取数组中右上角的数字,如果该数字等于要查找的的数字,查找过程结束;如果该数字比要查找的数字大,则剔除该数字所在的列;如果该数字比要查找的数字要小,则剔除该数字所在的行,这样可以缩小查找范围,直到找完,如果还没找到,说明该数组中不存在要查找的数字。举例:代码实现:#include using namespace std;

2017-07-24 16:07:43 1027

原创 链表翻转。比如给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5

链表翻转题目:链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现Node* RotateList(Node* list, size_t k). 提示:这个题是链表逆置的升级变型。算法思想:这个题是链表逆置的升级变型,我们可以将此链表先按照以k为

2017-07-24 10:26:36 906

原创 Linux下的mkdir&&rmdir指令

Linux下的mkdir&&rmdir指令一、mkdir指令Linux下的mkdir指令用来创建指定的名称目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。1.命令格式mkdir [选项] 目录...2.命令功能通过mkdir命令可以实现在指定位置创建以DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对

2017-07-22 23:05:06 1254

原创 查找数组中出现次数超过一次的数字

查找数组中出现次数超过一次的数字方法一:若该数组是有序的则可直接查看中间的那个元素即可找到出现次数最多的那个数。该方法就是先对所给出的数组进行排序,在取出中间的那个元素,即可。代码:#include #include using namespace std;int PartSort(int* a, int begin, int end){ int key

2017-07-22 17:15:40 909 1

原创 模拟实现MyString

模拟实现MyString一、模拟实现String的简单版本所实现的包括构造函数,拷贝构造以及赋值运算符的重载等基本操作。关于拷贝构造的深浅拷贝问题:此时需要重新开辟一块空间,将内容拷入,即深拷贝:关于赋值运算符的重载,需要先释放掉其空间,在重新开辟空间完成拷贝。代码实现传统写法:#define _CRT_SECURE_NO_WARNI

2017-07-21 20:01:43 312

原创 给定一个整数N,那么N的阶乘N!末尾有多少个0呢

给定一个整数N,那么N的阶乘N!末尾有多少个0算法思想:用 n 不断除以 5,直到结果为 0,然后把中间得到的结果累加。例如:求10的阶乘,用10/5=2,再用2/5=0,故10!的末尾一共有2个0。代码实现:#include using namespace std;int main(){ int count = 0; int N; cout << "输入所

2017-07-21 14:34:22 827

原创 层序遍历二叉树

层序遍历二叉树算法思想:我们可以利用队列先进先出的性质。层序遍历即应该先打印根节点,从根节点开始分析,为了接下来能够打印值为1的节点的两个子节点,再遍历到该节点时把其左右节点即2和5的两个节点保存在一个队列中,现在队列 中就有了两个节点。按照从左到右的打印要求,取出节点值为2的节点,打印出值为2的节点之后把它的值为3和4的两个节点放入队列。此时队列 中就会有三个节点,值为5

2017-07-21 12:55:22 432

原创 Linux下的ls指令

Linux下的ls指令ls指令总结-a 列出目录下的所有文件,包括以 . 开头的隐含文件-b 把文件名中不可出的字符用反斜杠加字符编号的形式列出-c 输出文件的i节点的修改时间,并以此排序-d 将目录像文件一样显示,而不是显示其下的文件。如: ls -d 指定目录-f -U 对输出的文件不排序-i 输出文件的i节点的索引信息。如 ls -ai 指定文件-k 以k字节

2017-07-20 19:03:40 726

原创 Linux的which指令

Linux的which指令1.which指令在Linux查找某个文件,可用以下命令来搜索:which:查看可执行文件的位置。whereis:查看文件的位置。locate:配合数据库查看文件的位置。which命令的作用:在PATH变量指定的路径中搜索某个系统命令的位置,并且返回第一个搜索结果。即使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命

2017-07-20 18:36:40 1778

原创 替换字符串中的空格

替换字符串中的空格方法一:算法思想:从头到尾扫描字符串,每次遇到空格的时候做替换。假设字符串的长度为n,对每个空格字符,需要移动后面O(n)个字符,因此,时间复杂度为O(n^2)。这种方法显然存在缺陷,我们可以减少移动次数,可以考虑从后向前替换。方法二:算法思想:先遍历一次字符串,统计出字符串中空格的总数,就可以计算出替换之后的字符串的总长度。代码实现:{C

2017-07-20 17:47:00 319

原创 元素出栈、入栈顺序的合法性

元素出栈、入栈顺序的合法性元素出栈、入栈顺序的合法性。如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。算法思想:建立一个辅助栈,把输入的第一个序列中的数字依次压入该辅助栈中,并按照第二个序列依次从该栈弹出数字。入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1

2017-07-20 16:39:34 1473

原创 计算一个整数二进制位中1的个数

计算一个整数二进制位中1的个数计算一个整数二进制位中1的个数。要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。方法一:基本思路:先判断整数二进制表示中最后一位是不是1,即将该整数和1做与运算,如果结果为1,则count++,如果为0,进行下一步;接着将输入的整数右移一位,这时处于从右边数的第二位被移到了最右边,再判断是不是1。循环进行,直到最终的结果为0。 

2017-07-20 16:04:29 788

原创 链表是否构成环、环的长度以及环的入口点的求法

链表是否构成环、环的长度以及环的入口点的求法题目:判断一个链表是否构成环,并求出所构成环的长度,以及环的入口点。基本思想:(1)判断是否构成环的方法定义快慢两个指针p1和p2,让这两个指针指向链表的头结点。假设该链表中有n个结点,让快指针比慢指针快两步,之后两个指针沿着链表向前走,若可以构成环,快指针总会比慢指针多走k圈,直到相遇;若不能构成环,则快指针和慢指针永远不可能相遇。

2017-07-20 11:28:03 323

原创 Shell编写进度条

Shell编写进度条此篇博客主要实现用Shell编写一个进度条,关于Shell的基本使用已经在前面几篇博客做了介绍,这里就不在重复。运行结果:

2017-07-19 14:48:58 491

原创 复杂链表的复制

复杂链表的复制复杂链表不仅包括数据域和指针域,还包括一个random域,并且该域可以为空。复杂链表的拷贝主要分为三步:(1)拷贝原始链表的每一个节点,插入到当前节点的后面。(2)调整random指针(3)分离两个链表代码实现:#include #include typedef int DataType;type

2017-07-18 13:43:39 245

原创 1.删除一个无头单链表的非尾节点 2.从尾到头打印单链表

1.删除一个无头单链表的非尾节点这里主要是采用数据替换,将需要删除的节点的下一个结点放在需要删除结点的位置,依次将需要删除结点的后续结点前移,即可完成删除。void DeleteNotTail(pNode pos){ pNode cur = pos->_next; assert(pos->_next); //数据替换 pos->_data =

2017-07-18 10:45:31 389

原创 fork()请问下面的程序一共输出多少个“-”?

fork()题目:请问下面的程序一共输出多少个“-”? #include #include #include int main(void) { int i; for(i=0; i<2; i++){ fork(); printf("-"); } return 0; } 解析:一共输出8个首先程序一开始

2017-07-17 22:49:49 4475 1

原创 Shell脚本学习-正则表达式&&grep

Shell脚本学习-正则表达式&&grep一、基本概念正则表达式:规定一些特殊语法表示字符类、数量限定符和位置限定符,然后用这些特殊语法和普通字符一起表示一个模式。正则表达式的三要素:(1)字符类(2)数量限定符(3)位置限定符grep为行过滤器,正则表达式在grep中用来查找符合模式的字符串。根据正则表达式中的关键字,将当行中的所有符合要求的匹配。二、字符

2017-07-16 20:57:39 552

原创 Shell脚本学习-位置参数和特殊变量

Shell脚本学习-位置参数和特殊变量1.位置参数和特殊变量(1)$0相当于C语言main函数的argv[0](2)$1、$2...这些位置参数相当于C语言main函数的argv[1]、argv[2]...(3)$#表示参数的个数(4)$@表示参数列表”$1“”$2"...,可用在for循环中的in后面。(5)$?上一条命令的状态(6)$$当

2017-07-15 17:14:50 543

原创 Shell脚本学习-语法篇(下)

Shell脚本学习-语法篇(下)1.函数在Shell当中,函数被理解为程序或小脚本,调用函数时可以传任意个参数列表,return返回值代表其退出码,被当做命令看待。函数定义中没有返回值也没有参数列表。函数体的左花括号{和后面的命令之间必须有空格或换行,如果将最后一条命令和右花括号}写在同一行,命令末尾必须有;号。函数的简单使用:2.Shell脚本的调试方法

2017-07-15 16:33:20 490

原创 Shell脚本学习-语法篇(上)

Shell脚本学习-语法篇(上)一、条件测试1.条件测试:test [命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的退出状态为0,如果测试结果为假,则为1(与C语言的逻辑刚好相反)。[是一个命令的名字,传给命令的各个参数之间应该用空格隔开。测试命令:[ -d DIR ]:如果DIR存在并且是一个目录则为真[ -f FILE ]:如果FILE存在且

2017-07-15 15:20:48 2816

原创 Shell脚本入门

Shell脚本入门1.基本概念Shell是一门弱类型、解释型、非编译型语言。Shell中无数据类型。Shell的作用是解释执行用户的命令,Shell执行命令的方式有两种(1)交互式:用户输入一条命令,shell就解释执行一条;(2)批处理:用户事先写一个Shell脚本,其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条的敲命令。2.shell执行脚本Sh

2017-07-13 17:04:18 7996

原创 shell脚本的命令代换

命令代换一、命令代换命令代换是指先完成引号或者括号中的命令行,然后将其结果替换出来,在重新组成新的命令行。shell脚本中用于命令行代换的一反引号(` `),和$()。那么这两个又有什么不同呢?运行后:表面上看起来两个结果并没有什么不同,但仔细分析会发现有以下不同点。反引号(` `)的缺点(a)它非常容易和单引号混淆(b)它会对\进行跳脱处理,而$()不

2017-07-13 11:14:21 698

原创 I/O多路转接之poll

I/O多路转接之poll与select使用三个位图来表示三个fdset的方式不同,poll使用一个pollfd的指针来实现。poll解决了select两个重要的问题:(1)poll服务器在处理文件描述符个数上理论上无上限;(2)poll服务器将输入参数与输出参数进行分离,不用每次使用时进行重新设置。函数形式:int poll(struct pollfd *fds,nfds_

2017-07-12 16:25:02 247

原创 调研tcp定时器

调研tcp定时器TCP使用四种定时器(Timer,也称为“计时器”):(a)重传计时器:Retransmission Timer(b)坚持计时器:Persistent Timer(c)保活计时器:Keeplive Timer(d)时间等待计时器:Time_Wait Timer。(1)重传计时器:重传定时器:为了控制丢失的报文段或丢弃的报文段,也就是对

2017-07-11 15:27:46 230

空空如也

空空如也

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

TA关注的人

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