- 博客(15)
- 资源 (15)
- 收藏
- 关注
原创 两个单向链表,找出它们的第一个公共结点
题目:两个单向链表,找出它们的第一个公共结点。链表的结点定义为:struct ListNode{ int m_nKey; ListNode* m_pNext;};这题硬是没有想到好的解法,原文解法很好,直接引用了。分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,因此在微软的面试题中,链表出现的概率相当高。如果两个单向链表有公共的结点,也就是说两个链表从某一结点开始,它们的m_pNext都指向同一个结点。但由于是单向链表的结点,每个结点只有一个m_pNext,
2010-12-20 22:11:00 867
转载 函数指针和指针函数
<br />【函数指针】 在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。 1.函数指针定义 函数类型 (*指针变量名)(形参列表); “函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。 例如: int (*f)(int x); double (*pt
2010-12-20 21:59:00 436
转载 itoa函数及atoi函数
<br />C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:<br /><br /># include <stdio.h><br /># include <stdlib.h><br /><br />void main (void)<br />{<br />int num = 100;<br />char str[25];<br />itoa(num, str, 10);<br />printf("The numb
2010-12-20 21:52:00 489
转载 大小端模式的区别
<br /> <br /> <br /> 最近在学习USB,在看Keil C51代码的时候发现从PC机接收的USB数据在Keil C51环境里要交换高低字节,这是因为Keil的数据结构是大端模式,对于大端模式不是很清楚后来网上搜索发现有一篇文章介绍的比较详细,不敢独享贴出来大家学习。 所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;<br
2010-12-20 21:11:00 616
转载 用itoa()函数将整数转换为字符串
<br /> C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:<br /> # include <stdio.h><br /> # include <stdlib.h><br /> void main (void)<br /> {<br /> int num = 100;<br /> char str[25];<br /> itoa(num, str, 10);<br /
2010-12-20 20:33:00 1976
转载 也谈内存对齐
<br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://bigwhite.blogbus.com/logs/1347304.html<br /><br />在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解更加底层的秘密,“内存对齐”对
2010-12-20 19:32:00 404
转载 内存对齐的规则以及作用
首先由一个程序引入话题:程序的输出结果为: sizeof(st1) is 12 sizeof(st2) is 8 问题出来了,这两个一样的结构体,为什么sizeof的时候大小不一样呢?本文的主要目的就是解释明白这一问题。内存对齐,正是因为内存对齐的影响,导致结果不同。对于大多数的程序员来说,内存对齐基本上是透明的,这是编译器该干的活,编译器为程序中的每个数据单元安排在合适的位置上,从而导致了相同的变量,不同声明顺序的结构体大小的不同。 那么编译器为什么要进行内存对齐呢?程序1中结
2010-12-20 19:17:00 597
转载 osi七层模型中都有哪些重要协议
<br />TCP/IP: <br />数据链路层:ARP,RARP 445(一般攻击这个)<br />网络层: IP,ICMP,IGMP 80<br />传输层:TCP ,UDP,UGP 80<br />应用层:Telnet,FTP,SMTP,SNMP. 23 21/22 25 161<br />下面基本一样,太多就不一一列,就列代表性的,<br /> <br />OSI:<br />物理层:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Eth
2010-12-20 15:51:00 913
转载 华为三层以太网交换机基本原理及转发流程
<br />华为三层以太网交换机基本原理及转发流程<br /> <br />1. 二层转发流程<br />1.1. MAC地址介绍<br />MAC 地址是48 bit 二进制的地址,如:00-e0-fc-00-00-06。<br /> 可以分为单播地址、多播地址和广播地址。<br /> 单播地址:第一字节最低位为0,如:00-e0-fc-00-00-06<br /> 多播地址:第一字节最低位为1,如:01-e0-fc-00-00-06<br /> 广播地址:48 位全1,如:ff-ff-ff-ff
2010-12-20 10:57:00 2237
转载 三层交换技术解
<br />简单地说,三层交换技术就是:二层交换技术+三层转发技术。它解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。<br /><br /> 什么是三层交换<br /><br /> 三层交换(也称多层交换技术,或IP交换技术)是相对于传统交换概念而提出的。众所周知,传统的交换技术是在OSI网络标准模型中的第二层??数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发。简单地说,三层交换技术就是:二层交换技术
2010-12-19 20:38:00 905
转载 什么事ARP
<br />ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。 <br />ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A
2010-12-19 15:18:00 615
转载 二三层交换原理
<br />二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:<br /> (1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;<br /> (2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;<br /> (3)如表中有与这目的MAC地址对应的端口,把数据包直接复制
2010-12-13 11:05:00 1249
转载 TCP/IP报文格式
<br /><br />1、IP报文格式<br /><br />IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧(见本章1.3节)中传送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。如图2-3所示:<br /><br /><br /><br />图2-3 TCP/IP报文封装<br /> 图2-4是IP头部(报头)格式:(RFC 791)。<br /><br /><br />图
2010-12-13 10:22:00 11538
转载 Socket连接出现大量的FIN_WAIT_2状态
<br />笔者完成的Socket Server端控件,经常在使用几个月后出现大量的FIN_WAIT_2状态的端口不能释放,造成服务器不能在有端口资源供给客户端建立新的连接,这一现象只出现在对方是UNIX的用户(移动的BOSS系统),笔者自己开发的Socket客户端控件从来没有出现过这个现象。<br />经过研究Socket的状态图<br />得出结论是Server端强制断开Socket时向客户端发送了FIN请求,客户端已经没有能力继续回复ACK,造成了服务器端大量的端口处在FIN_WAIT_2状态,不能释
2010-12-02 18:21:00 43399 2
转载 linux expect的使用
<br /> <br />首先,要安装expect,linux expect的安装<br />1.安装相应的包<br /> yum install -y tcl tclx tcl-devel<br />2.下载expect-5.43.tar.gz包(我这里用的这个包,大家也可以用别的)<br /> 根据参数,运行./configure<br /> ./configure --with-tcl=/usr/lib --with-tclinclude=/usr/include/tcl-private/gen
2010-12-01 11:00:00 12880 1
Berkeley DB 资料
2010-09-21
linux c函数速查手册
2009-10-13
lcd ampire128x64 的使用 proteus
2009-05-17
autocad做的小户型平面图
2009-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人