自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 浅谈C++多态

最近复习到了C++的多态性,我想把多态性的一些知识点进行下梳理总结。本文所有代码均在windows10的VS2013平台上测试什么是多态?多态性(polymorphism)据说最早源自希腊语,从字面上理解就是多种形态,多种形式。具体到C++这种面向对象(OOP)的语言中,其实就是“一种接口,...

2018-08-08 17:23:16 187

原创 链表逆置

定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。写代码时注意链表是否为空,链表是否只有一个结点。对于链表的逆置我有两种方法:(1)头插法。void Reverse1(List plist){ if(plist == NULL || plist->next == NULL || plist->next == NULL) return; No...

2018-08-06 19:40:23 334

原创 剑指offer七、用两个栈实现队列

                                      用两个栈实现队列题目描述:用两个栈实现一个队列,满足先进先出的特点。解题思路:将所有的元素都插入到栈1中,如果栈2为空,则将数据都压倒栈2中,然后栈2元素依次出栈,则实现队列的先进先出,如果栈2不为空,则将元素必须一直放在栈1,直到栈2元素都为空时,才能依次出栈。//利用两个栈模拟队列入队,全部入到栈1vo...

2018-08-04 17:35:11 212

原创 已知先序和中序重建二叉树

看剑指offer的时候看到这个题就写了一下代码,分享一下:题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。解题思路:在二叉树的前序遍历序列中,第一个数字总是树的根节点的值。在中序遍历序列中,根节点的值在序列的中间,左子树的节点的值位于根节点的左边,而右子树的结点的值位于根结点的值的右边。因此我们需要扫描中序遍历序列,才能找到根节点的值。typedef struct...

2018-08-04 13:03:40 344

原创 剑指offer 三、二位数组中的查找

二维数组中的查找题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。写一个函数,输入一个整数判断二维数组中是否存在该整数解题思路:首先选取数组中右上角的数字,如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,则以后此列的数都不参与比较,如果该数字小于要查找的数字,则该行之前的数字就不参与比较,依次这样缩小范围,直到找到要查找的...

2018-08-02 17:50:34 217

转载 10亿个数中找出最大的10000个数(top K问题)

前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然...

2018-08-02 17:31:39 1328 1

原创 自己实现strcpy,strcmp,strcat

1.strcpy:将字符串src拷贝到des里<1>.void mystrcpy1(char *des,const char* src)//拷贝{       assert(des != NULL && src != NULL);      while(*src != '\0')      {            *des++ = *src++...

2018-07-24 10:24:57 371

原创 如何检测系统大小端模式

首先来了解一下大端和小端模式:大端字节序列:指一个整数的高位字节(23-31bit)存储在内存的低地址处,低位字节(0-7bit)存储在内存的高地址处。小端字节序列:指整数的高位字节存储在内存的高地址处,低位字节存储在内存的低地址处。注:PC采用小端字节序,因此小端字节序被称为主机字节序。大端字节序被称为网络字节序。测试方法:(1) 直接判断法:根据大小端各自的存储方式写程序进行判断(2)联合体方...

2018-07-15 20:04:34 971

原创 死锁的简单总结

死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。一.死锁产生的原因:(1)因为系统资源不足,不能满足进程的资源请求,会导致多个线程之间同时争夺一个资源。(2)进程运行的顺序不合适。(3)资源分配不得当,有的进程分配的资源太少,会因为争夺资源而陷入死锁。二.死锁产生的场景:(1)多个线程:他们因为彼此申请对方的资源而导致的死锁。...

2018-07-12 20:03:27 294

原创 MySQL(三)

接着MySQL(二)来看一下事务以及触发器三.事务1.什么是事务?   事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所有SQL语句均执行成功,则事物被顺利执行。2. 为什么要讲InnoDB的事务...

2018-05-28 21:25:51 191

原创 MySQL(二)

今天简单来看一下存储引擎和索引一.存储引擎1. 查看存储引擎的命令。(1)查看当前的默认存储引擎命令:show  variables  like  ‘table_type’;(2)查看当前数据库支持的存储引擎1>show  engines \G;2>Show  variables  like  ‘have%’;2. 各种存储引擎的特点MyISAM是MySQL的默认存储引擎。不支持事务,...

2018-05-24 18:09:20 226

原创 MySQL(一)

首先看看SQL(结构化查询语言)的分类:DDL语句:数据定义语言,这些语句定义了不同的数据段、表、列、索引等数据库对象的定义。(create,drop,alter,show,desc等)DML语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。(insert,delete,update,select)DCL语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这...

2018-05-22 23:31:51 988

原创 字符串匹配算法

一.BF算法时间复杂度为:O(m*n)思想:假设现在主串S匹配到 i 位置,子串P匹配到 j 位置,则有:                                          如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符;                                          如果失配(即S[i]! = P[j]...

2018-05-15 21:22:56 216

原创 进程间通信(四)共享内存

共享内存1. 允许两个不相关的进程访问同一个逻辑内存。特点:共享内存是最快的一种IPC,在各个进程都有指针直接操作指向开辟的内存区域,访问时当作本进程中的一个内存控制直接操作2.相关函数总结(1)int  shmget(key_t  key,size_t  size,int  shmflg);//用来创建共享内存,成功返回共享内存标识符,失败返回-1Key:键值

2017-11-10 19:06:40 346

原创 进程间通信方式(三)消息队列

消息队列                                                                                                                                                                1.概念:提供一种在两个不相关的进程之间传递数据简单而有效的

2017-10-31 20:03:25 434

原创 进程间通信方式(二)信号量

信号量一.基本概念的解释1.信号量:同一时刻只有一个进程可以对临界区域的访问。俗话说相当于一个计数器(计数器记录着有几个进程可以使用),0代表阻塞,1代表执行。2.临界资源:同一时间只能被一个进程所使用的资源。ey:打印机临界区:进程访问临界资源的代码区域。3.原子操作:任何情况下都不能被打断的操作。4.内核对象:用于对进程间通讯时,多进程能够访问同一资源的记录。 

2017-10-22 21:27:44 406

原创 进程间通信方式(一)管道

管道一.管道分为有名管道和无名管道1.有名管道:在文件目录树中有一个文件标识,应用于任意两个进程之间数据的单向传递。(linux文件体系创建一个文件标识,但是磁盘上不会开辟空间,数据缓存在内存上,平常内存上也没有空间,只有在使用时在内存上开辟空间)。创建:命令方式:mkfifo,函数方式mkfifo()打开:open写数据:write读数据:read关闭:close

2017-10-18 00:18:56 523

空空如也

空空如也

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

TA关注的人

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