- 博客(157)
- 资源 (11)
- 收藏
- 关注
原创 删除链表中的重复节点、剩余节点逆序输出
/*功能: 输入一个不带头节点的单向链表(链表的节点数小于100),删除链表中内容重复的节点(重复的节点全部删除),剩余的节点逆序倒排。 输入: pstrIn: 输入一个不带头节点的单向链表 输出: pstrOut:删除内容重复的节点后,逆序排列的链表(不带头节点,链表第一个节点的内存已经申请)。 返回:示例:输入链表的内容
2015-05-11 21:50:35 853
转载 挖一挖unsigned int和补码
文章要讨论的是两部分:1. 原码,反码和补码。2. short, unsigned short, int, unsigned int, long, unsigned long的表示及转换 1. 原码,反码和补码原码是最直观的表示方式:最高位表示符号(0表示正,1表示负),其余位表示大小。假设占位为2字节的数,原码表示的范围就是[-127 ~ 127]一共255个数字。理论上
2015-05-02 21:14:47 949
原创 linux基础1
1.熟练使用tab键2.Ctrl+C :输入了错误的命令或参数,有的时候命令和程序会不停的运行,这个时候想要让程序停下来,可以按这个组合键,这个键可以将正在运行中的命令中断,如果当前的命令比较重要,这个组合键也要慎用。3.Ctrl+D :这个组合键代表键盘输入的结束,它可以替代exit的输入。例如如果想要直接离开文字界面,可以直接按下Ctrl+D就能够直接离开了(相当于直接输入exi
2015-04-24 21:38:02 586
转载 Win7下安装CentOS 6.5双系统(还没试)
点击打开链接http://blog.sina.com.cn/s/blog_86e874d30101e3d8.html经过一下午的折腾,终于在64位的Windows 7上面成功安装了CentOS 6.5(64bit)系统,中途因为硬盘分区的问题失败了一次。下面是安装过程:在安装过程中借助了这篇文章的内容:http://www.cnblogs.com/Johness/archive/201
2015-04-24 15:32:35 780
转载 win下安装Centos 6.5双系统过程附图(方案可行,最后描述了自己安装时启动项方面出现的问题)
Win7安装CentOS 6.4双系统过程本文是在两篇文章整合而成。分别是: Mr.Johness的 最清晰细致的教程!一步步教你打造Win7+CentOS双系统 和 cjh326419411的 Win7上安装centos6.4 双系统前者安装centos过程详细,后者考虑了CentOS6.4安装文件过大的问题,我这里只是将两篇文章整合了一下,并给后者配图,希望对大
2015-04-24 15:23:31 2205
转载 专家推荐的几本入门嵌入式系统开发的好书
[原]专家推荐的几本入门嵌入式系统开发的好书2007-10-16阅读577 评论01.> 作者:杜春雷 出版社:清华大学出版社 ISBN书号:7-302-06224-2 出版日期:2003年2月 本书描述:本书应该是做ARM 开发的一本基础教材,其中讲解了ARM编程模型,ARM汇编等一些与实际开发联系比较紧密的知识,这些知识对以后 b
2015-04-01 09:46:50 3369
转载 嵌入式开发总结
读大学时学过计算机组成原理、操作系统、计算机网络等等课程,但是大学生都知道,上完那些课只是懂一点皮毛而已,打打酱油就过去了。特别是对于软件工程师,一定要多实践、多思考才行。理论知识显得并没有搞硬件或者偏硬件开发的那么重要,因为软件的重点在于逻辑和算法。 我认为,在中、高级阶段,偏硬莫非就是一种知识活儿,而偏软莫非就是一种体力活儿……只有到达专家阶段才能够有所突破。对比一下培训机构的软
2015-04-01 09:44:10 1297
转载 成为嵌入式开发工程师几个步骤
学习技术不难,看你自己怎么规划希望给参加深圳单片机培训的朋友一些分享和帮助ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)(2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。从事嵌入式软件开发
2015-04-01 09:35:53 1072
转载 程序员练级攻略(CoolShell)
前言你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。一
2015-03-17 23:06:48 855
转载 程序员练级攻略----转自酷壳网coolshell.c n
月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历
2015-03-03 23:05:06 976
原创 快速排序的枢纽元选取策略
快速排序中枢纽元的选择会影响算法的效率快速排序中的枢纽元指的是一个元素V,该元素将一个数集S分成两个互斥的集合s1和s2,s1中的任意元素均不大于V,s2中的任意元素均不小于V.错误的选择策略 1)没有经过充分考虑,选择将数组的第一个元素作为枢纽元。 如果输入时随机的,那么这是可以接受的,但是如果输入时预排序的或是反序的,那么这样的枢纽元就产生了一个劣质的分
2015-03-01 11:22:48 3620
转载 周鸿祎:把职业程序员进行到底
周鸿祎:把职业程序员进行到底 《程序员》:非常谢谢您接受我们杂志的采访,在您十年的开发生涯中,曾经写了众多的软件产品,而3721中文网址系统更是拥有了广大的用户群,你一定对程序员这个职业有很多感触吧? 周鸿袆:是的,我一直很自豪曾经是程序员,但我所说的程序员并不是仅编程这个概念的程序员。从1990年开始写第一个商业化的程序,到现在已经有十年的时间了。在这十年期间,我既做过
2015-02-09 21:45:27 1352
转载 如何提高编程能力
程序员每天该做的事1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢
2015-01-24 11:22:56 543
转载 SIP ——了解PRACK
概述SIP定义了两种应答:临时(provisional)和最终(final)。最终应答传送的是请求处理的结果,是可靠性的(reliably)。 而临时应答传送的是处理过程的信息,由RFC3261是非可靠的。但是由现在的情况看来,特别是与PSTN交互过程中发现:临时应答也应该是可靠的。RFC3262定义了一种SIP可选的扩展方法——PRACK(provisional ack),用
2015-01-21 15:14:39 1231
转载 SIP中的PRACK
PRACK:the Provisional Response ACKnowledgement SIP中的最终响应被理解是会可靠传输的,例如对应INVITE的200OK响应,UAC会给一个ACK,告诉UAS已经收到了200OK。200与ACK间的可靠性是end-to-end的。PRACK是SIP消息中保证临时消息(101-199)可靠传输的机制。PRACK就是仿照200OK的可靠性响
2015-01-21 15:11:35 1297
转载 SIP 中的Dialog,call,session 和 transaction
如果你对Sip协议中Call, Dialog, Transaction和Message之间的关系感觉到迷惑,那么,那么我可以告诉你,你并不孤单,因为大多数初学者对于这些名词之间的关系都会感到疑惑.Messages(消息) 消息是在服务器和客户端之间交换的独立文本, 有两种类型的消息,分别是请求(Requests)和响应(Responses).
2015-01-14 09:52:08 805
转载 SIP协议入门:初学者必须明白的几个重要概念
SIP协议初学者必须明白的几个重要概念 一、 SIP协议的分层结构SIP是一个分层结构协议,它的行为根据一组平等独立的处理阶段来描述,每一阶段之间只是松耦合。SIP的最底层是语法和编码。它的编码使用增强Backus-Nayr形式语法(BNF)来规定。第二层是传输层,定义了网络上客户机与服务器发送请求和接收响应的方式,所有的SIP元素包含传输层。第三层是事务层。事务是
2015-01-14 09:44:34 2097
转载 Linux内核部件分析 ——原子性操作atomic_t
在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执行。带lock前缀的指令在操作时会锁住总线,使自身的执行即使在多处理器间也是原子性执行的。xchg指令不带lock前
2015-01-09 10:06:22 1079
转载 C语言中位运算符--位移运算符
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部等
2014-12-29 16:56:17 1336
原创 谈谈生活这个词
时间就是这样,不会因为人的乞讨而停留半秒。曾经的懵懂少年已经变得成熟,成熟的也慢慢开始苍老。不经意的一次相遇,一次相聚,一次长谈,一次冥想,才会意识到时间的速度和残酷,所以很多人幻想着能有一部时光机,穿越时间,来挽留失去的那个人,去挽救做错的那些事,让过去不去,让后来不来,让种种遗憾变成无憾。从回忆中醒来大半,时间或许又潇洒的走了一圈,留下独自落寞的自己,却也无能为力。 时间是毒药,
2014-11-08 17:32:06 740
转载 中兴通讯宋国栋:IMS全业务运营部署探讨
2008年11月28日,由中国通信学会主办的“2008年IMS技术峰会暨第三届IMS技术发展战略高层咨询会”在京召开,本次会议议题为“全业务环境下IMS部署战略”。中国通信在线(www.ezcom.cn)作为官方网站将对本次会议进行全程直播。 宋国栋:尊敬的各位领导,各位嘉宾,大家上午好! 非常荣幸有这样一个机会与各位专家一起探讨在全业务运营环境下IMS网络部署的问题。我今天汇
2014-09-15 16:50:44 2160
转载 孤儿进程与僵尸进程
我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。
2014-09-09 08:30:48 518
转载 学习Linux网络编程
Linux系统的一个主要特点是他的网络功能非常强大。随着网络的日益普及,基于网络的应用也将越来越多。 在这个网络时代,掌握了Linux的网络编程技术,将令每一个人处于不败之地,学习Linux的网络编程,可以让我们真正的体会到网络的魅力。 想成为一位真正的hacker,必须掌握网络编程技术。 现在书店里面已经有了许多关于Linux网络编程方面的书籍,网络上也有了许多关于网络编程方面的教材,
2014-09-08 15:24:03 747
转载 socket编程函数详解
一、网络编程socket之socket函数摘要:socket函数是任何套接口网络编程中第一个使用的函数,它向用户提供一个套接字,即套接口描述文件字,它是一个整数,如同文件描述符一样,是内核标识一个IO结构的索引。通过socket函数,我们指定一个套接口的协议相关的属性,为进行使用socket api做好准备。如同所有的介绍API的文档一样,我们先给出socket函数
2014-09-07 10:34:41 1418
转载 TCP中的MSS解读
MSS 是TCP选项中最经常出现,也是最早出现的选项。MSS选项占4byte。MSS是每一个TCP报文段中数据字段的最大长度,注意:只是数据部分的字段,不包括TCP的头部。TCP在三次握手中,每一方都会通告其期望收到的MSS(MSS只出现在SYN数据包中)如果一方不接受另一方的MSS值则定位默认值536byte。MSS值太小或太大都是不合适。太小,例如MSS值只有1byte,那么为了传输这1b
2014-09-06 11:03:46 2785
原创 合并两个有序链表
写这个程序的时候,//合并两个有序链表,将头指针为head1的链表合并到头指针为head的链表中。List MergeList(List head,List head1){ ListNode *p1=head; ListNode *p2=head1; ListNode *pre=NULL; ListNode *temp; if(head==NULL)//如果开始时链表head为空
2014-09-02 21:20:44 657
原创 循环链表解决约瑟夫问题(简化版)
约瑟夫环是一个经典的数学的应用问题:已知N个人(以编号1,2,3...N分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到M的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。代码
2014-08-31 23:10:30 5246
原创 循环链表解决约瑟夫环问题
约瑟夫环是一个经典的数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。这里假设
2014-08-31 20:14:41 6961
原创 双向链表的创建和相关操作
双向链表其实是单链表的改进。 当我们对单链表进行操作时,有时你要对某个结点的直接前驱进行操作时,又必须从表头开始查找。这是由单链表结点的结构所限制的。因为单链表每个结点只有一个存储直接后继结点地址的链域,那么能不能定义一个既有存储直接后继结点地址的链域,又有存储直接前驱结点地址的链域的这样一个双链域结点结构呢?这就是双向链表。 在双向链表中,结点除含有数据域外,还有两个链域,一
2014-08-30 21:34:58 4015
原创 华为校园招聘机试(2014.7 回忆版)
1.大意如下:1,2,3。。。n展灯,同时有n个人, 第1个人将1的倍数的灯拉一下, 第2个人将2的倍数的灯拉一下, 问最后有几展灯是亮的, 初始状态灯是灭的, 输入整数n(n
2014-08-30 15:49:22 693
原创 华为2012年校园招聘(北京)
1.给一个数字N,求1到N中含有以下数字的个数,数字中包含7或者能被7整除。例如: N=20, 则7,14,17三个数满足要求,则输出3.
2014-08-30 09:03:41 826
原创 2013届华为校园招聘机试题
题目一:子串分离 题目描述: 通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。 如果输入“abc def gh i d”,结果将是abc,def,gh,i,d, 要求实现函数: void DivideString(const ch
2014-08-28 19:26:13 611
转载 alibab 2014秋季校园招聘笔试
笔试面试(2)阿里巴巴2014秋季校园招聘-软件研发工程师笔试题详解第一部分: 单选题1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数 A: h(K)=K/N; B: h(K)=1; C: h(K)=K mod N; D: h(K)=(K+rand(N)) mod N, ra
2014-08-28 11:29:48 931
原创 多态之运算符重载(一)
1.运算符重载定义:C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运
2014-08-27 10:37:16 2371
原创 关键字 mutable (c++)
关键字 mutable 是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。下面我将讨论 mutable 的语义和用法,但是首先我要解释一下 C++ 对象模型的一个关键概念。对象的状态 一个对象的状态由其非静态数据成员的值构成,因此,修改一个数据成员将会改变整个对象的状态。将一个成员函数声明为 const 能够保证它不会改变对象的状态。 然
2014-08-25 22:22:05 804
转载 C++ 虚函数表解析(浩哥的文章)
C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R
2014-08-25 21:11:18 504
SIP(RFC3261中文版)
2013-09-11
TCP/IP详解
2013-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人