自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux中多进程(多线程)编程

多进程编程一、复制进程映像的fork系统调用1)父进程返回子进程的PID,子进程返回02)写时拷贝子进程与父进程代码完全一致,同时它还会复制父进程的数据(堆数据,栈数据及静态数据),采用写时拷贝技术,只有在任一进程对数据进行了读写操作时,拷贝才会发生。 二、exec 系列系统调用  在子进程中执行其他程序,即替换当前进程映像            

2017-09-17 15:23:04 811

原创 剑指offer(27)——二叉搜索树与双向链表

题目分析可以在纸上画出一个二叉搜索树,把它转化为一个双向链表,我们不难发现:在二叉搜索树中,每个节点的指向左孩子的指针让它指向它的前一个节点,指向右孩子的指针让它指向它的后一个节点,经过这样的转换,二叉搜索树就转化成为一个双向链表。思想就是这样,理解思想代码实现也就不难了。还有一点就是,这棵树的根节点总比左孩子大比右孩子小,再转化为为双向链表时对应该节点的前驱总比该节点小,后继总比

2017-08-10 16:44:04 567

原创 剑指offer(26)——复杂链表的复制

题目分析

2017-08-07 19:24:03 364

原创 剑指offer(23)——从上往下打印二叉树

题目从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印分析从上到下打印,即就是按层遍历这棵二叉树,然后将其节点上的值打印出来。如果该树只有一个根结点,那么就直接打印该节点就好,这是一种最极端的情况,可是我们常常遇到的并不是这样的情况,即就是打印完一个结点后,该结点会有字节点,所以我们应该考虑如何在打印完一个结点后将其子结点打印出来,在打印完其子结点后如何将其子子结点打印

2017-08-06 14:43:44 305

原创 linux----进程切换

进程切换一、进程调度1、调度时机1)自愿的调度随时可以进行##内核空间:一个进程可以通过schedule()启动一次调度/在调用该函数之前,将本进程的状态设置为TASK_INTERRUPIBLE 或 TASK_UNINTERRUPTIBLE,暂时放弃运行进入睡眠;为自愿的暂时放弃运行加上时间限制的系统调用:schedule_timeout()##用户空间:通过系统调用 paus

2017-07-11 16:44:08 1742

原创 复习---Linux系统调用

一、系统调用知识系统调用,可以参考http://blog.csdn.net/skyflying2012/article/details/10044343####Linux内核在系统调用时是通过寄存器而不是通过堆栈传递参数的,显然能够通过寄存器传递的信息量并不大,所以传递的参数大多是指针,这样才能通过指针找到更大的数据块####从内核中可以直接访问当前进程的用户空间,所使用的虚拟地址也与

2017-07-08 20:21:55 375

原创 复习-----C/C++

一、指针与引用的区别(从不同的角度入手)1、引用是C++才有的,在c++11新标准中之前只有一级引用,之后出现了二级引用2、(从汇编角度来说)看下面一个例子:int a = 3;int *b = &a;008E41F5 lea eax,[a]008E41F8 mov dword ptr [b],eax *b = 5;008E41FB mov eax,dword pt

2017-07-06 21:09:46 506

原创 复习----常见的排序算法

到目前为止,学习过的排序算法已经有很多了。它们因为时间复杂度以及空间复杂度的差异适用于不同的场合,所以现在来整理一下。(注:此处的swap()是一个交换函数,只给出具体的实现函数)待排序数组如下图:一、交换排序交换排序,就是相邻数的两两交换。经过一趟排序之后(即i=0时),数组变为如图:由上面我们可以看出,经过一趟交换排序之后,最小的数已经被放在数组的开始。

2017-04-30 15:16:14 358

原创 面试题-----在O(1)时间删除链表结点

题目要求给定单链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。题目分析首先我看到这个题目,还是会惯性思维,认为删除指定结点,不就是要遍历该链表找到该结点,那就是O(n)呀。。。(无力吐槽我的智商)仔细思考一下,该函数已经给了两个已知的参数了,头节点以及待删除结点。知道待删除结点,也就等于知道了该结点的下一个结点。分析到这里,问题似乎可以解决了,删除该结点,即就是释放该

2017-03-23 18:19:19 390

原创 面试题------数值整数次方

问题要求实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要靠考虑大数问题。问题分析看到这个问题,我觉得我跟大多数人想的是一样,直接循环作乘法。但是仔细一想,考虑的还是太少了。从底数和指数两方面分别考虑:有这么几种情况我们不容忽视,1)对0求倒数出现异常,要做特殊处理;2)0的0次

2017-03-19 11:44:51 517

原创 青蛙跳台阶----斐波那契数列

题目要求一只青蛙一次可以跳上一节台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶共有多少种跳法?题目分析看到该题目,首先你可以在纸上画一画,想一想,从一级台阶往后推导,反正我是这么做的,当推导上三四级以后,你就会发现一个规律。按照这种方法推导出来的台阶数与可以选择的方法数之间的关系恰好就是斐波那契数列。那么就不难写出代码了,关键就是我们常常用递归的方式来实现一个斐波那契数列,递归的时间

2017-03-18 20:03:55 753

转载 C++中的常见重要关键字

一、const: const 是一个左结合的类型修饰符,它与其左侧的类型修饰符和为一个类型修饰符。const可以用于定义常量,可以限定函数的引用参数(因为传值的参数根本不用限定),可以限定函数返回值为引用的情况。还有一个用法是修饰类的成员函数。这样情况下,在类内的声明和类外的定义都要加上const。还有一种情况是,声明类的const成员变量的时候,如何进行初始化。在这种情况下,由于

2017-03-18 11:34:31 1488

原创 面试题-----两个栈实现一个队列

一、用两个栈模拟一个队列思路:看到这个问题,首先我们应该想到的是:栈和队列各自都有什么特性。那让我们回忆一下:栈先进后出,即先入栈的后出栈,而队列是先进先出,即先入队列的先出队列。那么现在我们的目标就很明确了,用栈实现队列,即就是要用先进后出模拟出先进先出。那么如何用栈来实现队列呐?假设1,2,3,4,5按照顺序入栈,那么出栈的序列理应为5,4,3,2,1,出队的序列则应该为1,2,3

2017-03-17 10:00:01 556

原创 面试题----重建二叉树

一、题目:输入某二叉树的前序遍历和中序遍历的结果,重建出该二叉树,假设无重复数字。例如前序遍历结果为{1,2,4,7,3,5,6,8},中序遍历结果为{4,7,2,1,5,3,8,6},重建出该二叉树并输出其头节点。首先看到该题目,我们心里应该清楚二叉树的前序遍历和中序遍历各自有什么特点,想不通的话可以在纸上画一画。前序遍历序列中第一个数字总是该二叉树的根节点,但是在中序遍历序列中根节点在中间

2017-03-10 10:56:10 391

原创 网络基础

今天做了一些关于网络基础方面的专项练习,错误率不低但是通过这些错题发现自己在这方面确实存在不少不足之处,总结一些错点及其涉及到的知识点,方便以后复习查看,哈哈。。一、关于URLURL由三部分组成:资源类型、存放资源的主机域名、资源文件名。URL的一般语法格式为:(带方括号[]的为可选项):protocol :// hostname[:port] / path / [;param

2017-03-02 18:43:44 474 1

原创 Linux基本命令总结及学习笔记

Linux已经学了近一个月的时间,自测了一次之后,才发现自己好像没学下来点什么,分析了一下原因,问题出在自己没有及时地去回顾,归纳总结,所以今天来总结一下。一、Linux的文件系统结构      /bin     /boot     /dev    /etc    /lib    /lost+found   /mnt   /proc   /root

2016-10-21 16:44:25 957 1

原创 数据结构单链表

最近学习了数据结构,在写代码时才开始将头文件与实现以及测试用的主函数分开写,逐渐开始理解封装的意义所在,为用户留出一个接口使用,而用户并不知道具体的实现。这里写了一个单链表,我的理解就是单链表就是由一个一个结点连起来的,这里你可以使用一个新的结点指向这个链表的第一个结点,那么这个结点就称为头结点。代码实现如下(备注:这里将头文件,实现文件,以及主函数分开来写的)//头文件LinkList.

2016-10-15 10:52:32 523 1

原创 去掉字符串中的所有空格

一、题目要求编写函数,要求去掉字符串中的所有空格二、问题分析根据题目要求,首先我们应该清楚这个题可以有好几种方法来解决,最先应该想到用数组。方法(1):定义一个指针遍历整个字符串,若该指针遍历到的字符不是空格的话,就将该字符放到一个临时的数组里,知道遇到'\0'为止,那么这个临时的数组中存放的就是去掉所有空格的字符串,然后再将临时的数组拷贝回原字符串数组。函数代码如下所示:

2016-09-04 10:32:41 13755

原创 字符串中字符移动的题目

一、题目要求编写一个函数,根据用户定义字符串和需要移动字符的位数n,将该字符串从右边起n个字符顺序不变的放在该字符串的前面。例如:将 helloworld 右移两位为 ldhellowor  .二、问题分析首先这个函数是有两个参数,字符串str和移动位数n。我在这里的思路是:先计算出该字符串的长度len,再设置一个指针p指向该字符串需移动字符的前一个字符,即字符r,开辟一个临时的数组来

2016-07-28 18:56:32 3481

原创 关于数组,函数的一个简单例子(打渔晒网)

一、题目要求某人从1990年1月1日起开始“三天打渔两天晒网”,问这个人在以后的某一天是打渔还是晒网?二、问题分析这个问题,首先应该想到如果想要知道该人是打渔还是晒网,那就应该计算出从1990年1月1日到以后的某一天总共的天数,然后依据三天打渔两天晒网,用总天数对5做求模运算。这样该问题就可以简化为两大步:1、求总天数在求总天数中,又可细分几步。首先,根据用户输入的年月日计算这

2016-07-26 19:07:18 864 1

原创 关于数组的一个例子

一、题目要求: 庆祝活动,现在A、B、C三条军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒鸣放一次,B舰每隔6秒鸣放一次,C舰每隔7秒鸣放一次。假设炮手对时间掌握的都很准,那么总共听到多少声炮响?二、问题分析对于这个问题,可以使用数组来解决。首先使用三个数组分别存放A,B,C舰21响礼炮的鸣放时间点,这里可以使用一个for循环来将各个时间点放入数组;接下来再用一个新的

2016-07-25 13:06:55 1684

空空如也

空空如也

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

TA关注的人

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