自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小葱的博客

每一个不曾起舞的日子都是对生命的辜负。。。

  • 博客(14)
  • 收藏
  • 关注

原创 排序小结

概要: 了解排序算法各种算法的时间复杂度和空间复杂度如下: 排序详解:一、 插入排序直接插入排序:将一段无序区间插入到一段有序区间(1个元素自称一个区间),每次都是取出无序区间的第一个元素插入到有序区间(在有序区间找合适自己的位置,也就是保持有序区间依然有序)。图示直接插入过程:代码如下://假设是升序template<class T>void InsertSort(T* arr,size

2017-07-25 15:07:34 626 1

原创 编写tcp_server

背景知识:1.在TCP/IP协议中,IP地址+TCP/UCP端口号 —-》唯一标识网络通讯中的一个进程, 并且IP地址+端口号被称为socket。2.内存中的多字节数据相对于内存地址有大端和小端之分, 而网络数据流同样有大端和小端之分。TCP/IP协议规定,网络数据流应采用大端字节序,即就是低地址高字节。所以:发送端把数据发送到发送缓冲区之前需要做字节序的转换。 而接收主机在

2017-07-24 17:30:39 8040

原创 判断两个链表是否相交?若相交,求交点(假设链表带环)

前言: 深知自己对于这个知识点掌握的不是很好,故好好思考,并记录下思考后的成果。图示链表带环相交问题:既然已经分析清楚,那么代码就很好实现了。。。Node* IsHaveCrossNode(Node* head1,Node* head2) { assert(head1); assert(head2); Node* meetNode1 = Is

2017-07-19 00:43:30 904 1

原创 根据类(不能被继承、只能在栈上/堆上创建对象)的特点设计一个类

一、设计一个类不能被继承二、设计一个类只能在栈上创建对象三、设计一个类只能在堆上创建对象

2017-07-16 19:44:06 587

原创 浅析有关链表的带环问题

概要: 有关链表带环问题的面试题: *判断一个链表是否带环? *求环的长度? *求环的入口点?1、判断链表是否带环?//判断一个链表是否带环 //思路:快慢指针,返回相遇点 Node* IsCircle(Node* head) { if (head == NULL) { return NULL;

2017-07-16 12:25:45 351

原创 二叉树的面试题

1. 求两个节点的最近公共祖先节点假设现在找的是节点X1和X2的最近的公共祖先节点。 这里由于这棵树的结构或者说是特点从而导致这颗树的解法会有多种思路:第一种就是这棵二叉树是一个搜索二叉树,那么可以根据搜索二叉树的特点从而找出两个节点的最近的公共祖先节点。 可以想到,如果X1在一个节点的左子树,X2在一个节点的右子树,或者X1在一个节点的右子树,而X2在一个节点的左子树,这样就可以

2017-07-14 20:16:44 1170

原创 栈和队列的面试题

1.实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)对于这个问题,我们都知道,栈的入栈和出栈时间复杂度都是O(1),那么我们所面临的问题就是需要有一个接口来实现返回最小值的操作,且这个操作的时间复杂度必须是O(1)。 这里有两种思路可供选择: (1)前提:这里有一组数据,利用一个栈,将这些数据需要入栈,而在入栈的时候遵循这样的规律,将一个数据

2017-07-13 11:31:05 1053

原创 代理服务器与NAT

文章概要: 1.代理服务器? 2.代理的过程? 3.NAT? 4.NAT技术?代理服务器(Proxy Server)代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。 (client —–server) 代理服务器:代理服务器就是代理网络用户去取得网络信息。 形象的说:它是网络

2017-07-11 00:17:40 660

原创 ARP协议

理解arp协议 编写arp脚本抓取对应主机mac地址 ARP:地址解析协议*用来将IP地址转换为MAC地址的。 背景知识: IP地址:给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围唯一的32位的标识符。 通俗点讲:标识网络中不同主机的地址。 端口号:同一台主机上标识不同进程的地址。 IP地址+端口号 ——》标识网络中唯一的进程。在网络通讯

2017-07-10 20:53:18 357

原创 CRC校验

CRC校验是什么? 如何进行校验? 具体的例子? CRC校验为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)。CRC校验原理:先在要发送的帧后面附加一个数(这个数就是用来校验的校验码FCS,这个校验码是二进制序列的),生成一个新帧发送给接收端。关于这个校验码,不是随机选

2017-07-09 16:09:41 1384

原创 生产者与消费者模型(二)

在上一篇博客中我们了解了什么是生产者与消费者模型? 也掌握了生产者与消费者模型的规则,并且实现了基于单链表的生产者与消费者模型,但是我们实现的基于单链表的生产者与消费者模型还是存在问题,存在死锁的问题,如果想深入理解死锁问题的,可以去看下我总结的死锁的博客。这篇博客我们主要来实现基于环形队列的生产者与消费者模型。 由于上一篇博客已经讲清楚了关于生产者与消费者的各种问题,所以这篇博客我们就直接来实

2017-07-03 01:19:31 591

原创 生产者消费者模型(一)

什么是生产者和消费者?在实际的软件开发中,经常会遇到这样的场景:某个模块负责生产数据,这些数据由另一个模块来负责处理。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。对于生产者/消费者模型来说,上面所述还需一个缓冲区,这个缓冲区处于生产者和消费者之间,作为一个中介。 生产者将数据放入缓冲区,而消费者从缓冲区取出数据。生产者和消费者模型为什么需要缓冲区?1.解耦假设生产者和消费者

2017-07-03 00:53:40 1164

原创 调研crond (linux下的定时任务)

前言: 1.了解crond以及crontab 2.了解涉及的背景知识 3.深入理解crontab文件 4.举例说明linux下需要循环运行的例行性任务,是使用crond这个系统服务来控制的。 linux系统上有非常多的计划性工作,因此这个系统服务是默认启动的。另外,由于一般用户有时也想要设置计划任务,所以,linux系统也提供了控制计划服务的命令:crontab命令。认识crondcron

2017-07-02 18:33:41 498

原创 守护进程及创建

前言: 1.了解守护进程 2.守护进程的特点 3.如何创建守护进程 4.创建守护进程时fork一次与fork两次的区别初识守护进程守护进程也称为精灵进程(Daemon),是运行在后台的一种特殊进程(孤儿进程)。 守护进程独立于控制终端并且周期性地执行某些任务或等待处理某些发生的事件。一般的进程都会在用户登录时或运行程序时创建,在用户注销或程序运行结束时终止。但是守护进程不受用户登录或注销的

2017-07-02 13:45:30 407

空空如也

空空如也

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

TA关注的人

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