1、Linux C/C++
mr_chenping
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式软件工程师/linux c程序员 面试经验自我总结
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】最近也没有时间写博客,原因简单,忙着找工作,一天面试2-3家,早出晚归一天累的死去活来,混口饭吃真TM的不容易啊!在上一家公司日子比较清闲也没什么大项目,在空闲和业余时间我先后熟读了《Unix环境高级编程》、《Unix进程间通信》、《大话数据结构》、《Unix网络编程》、《unix...原创 2013-03-29 12:30:50 · 39208 阅读 · 16 评论 -
数据结构——算法之(034)(编写一个函数求一个数组中的第二大数)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:编写一个函数求一个数组中的第二大数题目分析:1、要想找到第二大数,很自然想到,你必须找到第一大数2、顺序遍历数组,用两个零时变量记录当前的最大值和第二大值算法实现:#include int search_second_max(i原创 2014-06-30 17:02:41 · 1862 阅读 · 0 评论 -
数据结构——算法之(021)( 从尾到头输出链表)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:struct ListNode{int m_nKey;ListNode* m_pNext;};题目分析:给出三种解题方法:(注意,单向链原创 2014-05-27 11:56:39 · 1114 阅读 · 0 评论 -
数据结构——算法之(035)(时钟的时分秒针每天重叠几次?时分每天相遇几次?分秒每小时遇到几次?)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:两个有序单链表合并为一个有序的单链表(默认升序)题目分析:1、因为两个链表都是有序的,所以首先要记录那个链表头最小2、大致思想是用一个虚拟节点顺序连接两个链表中的节点,并且顺移两个链表中头指针,让其一直 指向第一个未被连接的节点算法实现原创 2014-06-30 17:07:52 · 1213 阅读 · 0 评论 -
数据结构——算法之(036)(输出字符串的所有排列)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输出字符串的所有排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba题目分析:1、想遍历字符串,然后顺序交换字符串的两个字符,然后再次递归后,把刚才那两个字符交换回来算法实现:#include using原创 2014-06-30 17:13:16 · 1032 阅读 · 0 评论 -
数据结构——算法之(022)( 在字符串中删除特定的字符)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串变成”Thy r stdnts.”。这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的原创 2014-05-27 12:06:24 · 2158 阅读 · 0 评论 -
数据结构——算法之(020)( 和为n连续正数序列)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。分析:这是一道广为流传的面试题,包括百度、微软和Google 在内的多家公司都曾经采用过这个题目。要几十分钟的时间里很好地解答这道题,除了较好的编程能力之外,还需要较快的反应和较强的逻辑思维能力原创 2014-05-27 11:48:25 · 879 阅读 · 0 评论 -
数据结构——算法之(019)( 10分钟写出二分法查找,并调试通过)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:写出二分法查找,要求在10分钟之内完成,并调试通过题目分析:一、相信好多人看着简单,动手就难了。二、二分法查找只能用于排序过的序列查找,简单的思想是折半查找法,每次查找前先修改下标。算法实现:#include int原创 2014-05-27 11:38:57 · 1448 阅读 · 0 评论 -
数据结构——算法之(037)(数值的整数次方)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:数值的整数次方.实现函数double Power(double base, int exponent),求base 的exponent次方,不需要考虑溢出题目分析:1、要考虑double型变量的比较2、正负数的不同点算法实现:#in原创 2014-06-30 17:15:19 · 916 阅读 · 0 评论 -
数据结构——算法之(015)( 求整数二进制表示中1的个数)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输入一个整数,求改整数的二进制表达式中有多少个1.例如输入10,由于其二进制表示为1010,有两个1,因此输出2.题目分析:解法一、从右边开始计算位为1的个数:用右移运算符,先判断最右边的那位是不是1,接着往右移一位。一直循环往复直到输入的值变为0原创 2014-05-25 20:34:29 · 1199 阅读 · 0 评论 -
数据结构——算法之(014)( 输入n,用最快的方法求Fibonacci数列的第n项)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:题目:定义Fibonacci数列如下: / 0 n=0f(n)= 1 n=1 / f(n-1)+f(n-2) n=2输入n,用最快的方法求该数列的第n项。分析:在很多C语言教科书中讲到递归函数的时候,都会用Fibonacci作为例子。原创 2014-05-24 11:24:09 · 1284 阅读 · 0 评论 -
数据结构——算法之(038)(找出两个数之间的素数的个数,并打印)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:找出两个数之间的素数的个数,并打印题目分析:1、素数是只能被1和本身整除的数算法实现:#include /*** 找出两个数之间的素数的个数,并打印** 注意:只能被1和本身整除的数*/int count_prime_numbe原创 2014-06-30 17:18:53 · 1457 阅读 · 0 评论 -
C++迭代器失效的问题 汇总
首先对于vector而言,添加和删除操作可能使容器的部分或者全部迭代器失效。那为什么迭代器会失效呢?vector元素在内存中是顺序存储,试想:如果当前容器中已经存在了10个元素,现在又要添加一个元素到容器中,但是内存中紧跟在这10个元素后面没有一个空闲空间,而vector的元素必须顺序存储一边索引访问,所以我们不能在内存中随便找个地方存储这个元素。于是vector必须重新分配存储空间,用来存放原来翻译 2014-06-13 21:54:44 · 907 阅读 · 0 评论 -
数据结构——算法之(028)( 寻找其中的一个子字符串个数)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:已知一个字符串,比如asderwsde,寻找其中的一个子字符串比如sde 的个数,如果没有返回0,有的话返回子字符串的个数题目分析:1、顺序遍历字符串,然后用strncmp比较即可算法实现:#include #include int sub_st原创 2014-06-16 16:56:22 · 1629 阅读 · 0 评论 -
数据结构——算法之(040)(最大公约数问题)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:最大公约数问题题目分析:编程之美上的经典算法算法实现:#include int gcd(int x, int y){ return ((!y) ? x: gcd(y, x%y));}int main(int argc, c原创 2015-06-10 12:51:32 · 871 阅读 · 0 评论 -
数据结构——算法之(039)(ip合法性检查)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:ip合法性检查题目分析:(1) 字符串只含有数字和'.'(2) 长度在7-15之间(0.0.0.0--255.255.255.255)(3) 每个数字在0-255之间(4) '.'号不能超过3个,且不能连续算法实现:#inc原创 2015-06-10 12:48:40 · 1044 阅读 · 0 评论 -
数据结构——算法之(041)(寻找数组中的最大值和最小值)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:寻找数组中的最大值和最小值题目分析:1、时间复杂度0(1)算法实现:#include void get_array_max_and_min(int *array, int array_size, int *max, int *min原创 2015-06-10 12:54:51 · 2735 阅读 · 0 评论 -
数据结构——算法之(006)(求子数组的最大和)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。题目分析:一、如果数组中全部为负数,则返回最大负数值即可二、当既有正数也有负数的时候原创 2014-05-22 09:44:39 · 787 阅读 · 0 评论 -
数据结构——算法之(033)(两个有序单链表合并为一个有序的单链表)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:两个有序单链表合并为一个有序的单链表(默认升序)题目分析:1、因为两个链表都是有序的,所以首先要记录那个链表头最小2、大致思想是用一个虚拟节点顺序连接两个链表中的节点,并且顺移两个链表中头指针,让其一直 指向第一个未被连接的节点算法实现原创 2014-06-17 09:53:21 · 3576 阅读 · 0 评论 -
数据结构——算法之(032)(求两个串中的第一个最长子串)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:求两个串中的第一个最长子串(神州数码以前试题).如"abractyeyt","dgdsaeactyey"的最大子串为"actyey".题目分析:1、这里只是实现了简单的字符串算法(最大支持字符串长度64),主要是展示算法思想2、思路是把2个字符原创 2014-06-17 09:44:21 · 1703 阅读 · 0 评论 -
数据结构——算法之(027)( 在O(1)时间内删除链表结点)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:在O(1)时间内删除链表结点,且不知道链表头题目分析:1、把要删除节点的下一个节点的数据拷贝到要删除的节点2、把下一个节点删除算法实现:#include #include typedef struct _list_node{ int原创 2014-06-16 16:51:25 · 1074 阅读 · 0 评论 -
数据结构——算法之(030)(将字符串中所有小写字母排在大写字母的前面)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在大写字母的前面开辟足够少的空间,时间复杂度O(n)题目分析:1、字符串从新排序后没有要求保持以前的顺序2、用两个指针分别指向字符串头和尾,头指针指向每次指向大写字原创 2014-06-17 09:29:22 · 3379 阅读 · 1 评论 -
数据结构——算法之(029)( 字符串原地压缩)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:字符串原地压缩,题目描述:"eeeeeaaaff" 压缩为"e5a3f2",请编程实现题目分析:1、原地压缩,意思是不开辟额外的空间2、应该考虑单个字符不压缩,比如‘q’压缩过后还是‘q’,而不应该是‘q1’3、压缩后某个字符个数是多位原创 2014-06-17 09:21:30 · 2031 阅读 · 1 评论 -
数据结构——算法之(031)(将字符串中所有小写字母排在大写字母的前面)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。题目分析:1、需要保持非'*'字符的顺序2、不开辟额外的空间3、用快慢指针,指向字符串尾巴,快指针指向非‘原创 2014-06-17 09:37:05 · 1543 阅读 · 0 评论 -
数据结构——算法之(013)( 求和1+2+3+...N)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:求和1+2+3+...N 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句.题目分析:一、首先,题目不允许使用while,那我们得想到循环的唯一方法递归二、不能使用if语句,那么可以巧用原创 2014-05-24 11:16:31 · 1805 阅读 · 0 评论 -
数据结构——算法之(018)( 和为n连续正数序列)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输入一个正数n,输出所有和为n连续正数序列例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。题目分析:一、首先是连续的序列,则个数至少是2,假如输入的是15,则循环到中间就可以了原创 2014-05-25 21:04:46 · 847 阅读 · 0 评论 -
数据结构——算法之(017)( 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1))
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)题目分析:一、乍一看,不可能完成。时间复杂度为n,纵观所有的排序法,没有达到这个级别的二、如果针对的是有限个数排列,可以采用标记法,或者说它是一种hash思想的方法,申原创 2014-05-25 20:51:56 · 1346 阅读 · 0 评论 -
数据结构——算法之(002)(字符串反转)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:实现字符串反转题目分析:一、以N/2(N为字符串长度),依次交换左右两边的字符即可算法实现:#include #include #include char * revstr(char *str){ char *h = str; c原创 2014-05-20 09:14:22 · 969 阅读 · 0 评论 -
数据结构——算法之(004)(输入一个单向链表,输出该链表中倒数第k个结点)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode{ int m_nKey; ListNode* m_pNext;};题目分析:解法一、先计算链原创 2014-05-20 15:00:50 · 1094 阅读 · 0 评论 -
简单的makefile
几个简单的Makefile几个简单适合小程序的Makefile,可直接拷贝使用,自己mark一下,这样长时间不用Makefile也不用去看手册了0.只有一个文件# 变量的定义,方便使用CC = gccCCFLAGS = -O2 -sBIN = testOBJ = root_password_tool_win32.o$(BIN转载 2013-12-31 10:12:03 · 944 阅读 · 0 评论 -
Linux core文件的产生和调试
在Linux下程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。 注: 1. 当然首先编译时要带上gdb信息1. core文件的生成开关和大小限制1.1使用ulimit -c命令可查看core文件的生成开关。转载 2013-10-31 10:25:27 · 10847 阅读 · 0 评论 -
IO_缓冲和非缓冲
这两天在项目原有版本的基础上增加了一段新的协议实现代码,因此需要和平台进行联调。考虑到更好地进行调试,我在代码中添加了一段类似日志记录的代码,已获取通讯的报文内容和当时的环境参数内容,就是创建一个文件,使用标准IO的fopen、fprintf进行输出记录。但是在调试中,刚开始我就傻眼了,文件创建成功了,但是实时查看竟然没有任何数据记录。经过半天的担惊受怕和反复排查,发现是被标准IO的缓冲机制摆了一翻译 2013-06-25 09:12:37 · 1402 阅读 · 0 评论 -
数据结构——单向链表操作
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】 单向链表(单链表),是链表中最简单的一种。顾名思义单向链表必须从头部开始读取顺序访问每个节点单向链表特点如下:一、每个节点包含一个指向链表下一节点的指针。二、链表最后一个节点指针字段为NULL。三、为了记住链表的起始位置,我们定义了一个头指针,它不包含任何数据原创 2012-11-26 01:36:37 · 954 阅读 · 0 评论 -
Sprintf 高级用法
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】 Sprntf c语言在字符串处理中本来就很繁琐,但字符串处理是编写代码最常遇到的问题,今天说的sprintf是printf的加强版。用好了它能在字符串处理中做到事半功倍的效果,具体看代码: 函数简介:字串格式化命令,主要功能是把格式化的数据写入某个原创 2012-11-26 08:42:05 · 5089 阅读 · 0 评论 -
Sscanf 高级用法
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】 sscanf sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const cha原创 2012-11-26 08:58:40 · 1991 阅读 · 0 评论 -
数据结构——单向循环链表
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】 上一次我写过单向链表,单向循环链表和单向链表类似,仅仅是循环条件不同而已。单向循环链表特点:一、每个节点依旧跟单向链表一样,包含一个指向下一节点的指针。二、最后一个节点不在指向NULL,指向第一个节点。三、单向循环链表可以从任意一个节点出发遍历整个链表。原创 2012-11-26 09:54:17 · 1223 阅读 · 0 评论 -
数据结构——排序法汇总
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】 参考了网上的部分代码,这里首先表示感谢。今天特别总结了一下编写代码常用到的排序方法,其中冒泡排序法、插入法、选择法理解起来比较简单,快速排序法和shell排序法理解起来相对比较费解。具体代码如下: /*“冒泡法”冒泡法大家都较熟悉。冒泡法原理简单,但其缺点是交换次翻译 2012-11-26 11:05:44 · 647 阅读 · 0 评论 -
数据结构——算法之(023)( 单链表就地逆置,头插法)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:单向链表的就地逆置题目分析:一、方法很多,这里使用头插法(1)顺序遍历链表,并把每个节点从新插入在头结点后面(2)其实就是简单的头插法建立链表的过程算法实现:#include #include typedef st原创 2014-06-04 15:38:57 · 8448 阅读 · 0 评论 -
数据结构——算法之(024)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存原创 2014-06-04 15:47:11 · 2354 阅读 · 0 评论 -
数据结构——算法之(005)(输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11原创 2014-05-21 17:32:14 · 1563 阅读 · 0 评论
分享