自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (4)
  • 收藏
  • 关注

原创 用两个栈来实现一个队列

题目:用两个栈实现一个队列。队列声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能声明:template class CQueue{    public:        CQueue(void);        ~CQueue(void);        void appendTail(const

2017-08-04 15:19:05 479

原创 黑化、膨胀的牛牛——每日一练

黑化的牛牛牛牛变得黑化了,想要摧毁掉地球。但他忘记了开启地球毁灭器的密码。牛牛手里有一个字符串S,牛牛还记得从S中去掉一个字符就恰好是正确的密码,请你帮牛牛求出他最多需要尝试多少次密码。如样例所示S = "ABA",3个可能的密码是"BA", "AA", "AB".当S = "A", 牛牛唯一可以尝试的密码是一个空的密码,所以输出1. 输入描述:输入包括一个字符串S,字符串长度

2017-07-26 19:52:33 587

原创 黑白卡片——每日一练

牛牛有n张卡片排成一个序列.每张卡片一面是黑色的,另一面是白色的。初始状态的时候有些卡片是黑色朝上,有些卡片是白色朝上。牛牛现在想要把一些卡片翻过来,得到一种交替排列的形式,即每对相邻卡片的颜色都是不一样的。牛牛想知道最少需要翻转多少张卡片可以变成交替排列的形式。 输入描述:输入包括一个字符串S,字符串长度length(3 ≤ length ≤ 50),其中只包含'W'和'B'两种字符

2017-07-25 20:06:38 770

原创 struct与union的对齐方式解析

一、Struct 和 Union有下列区别:1.在存储多个成员信息时,编译器会自动给struct第个成员分配存储空间,struct 可以存储多个成员信息,而union每个成员会用同一个存储空间,只能存储最后一个成员的信息2.都是由多个不同的数据类型成员组成,但在任何同一时刻,union只存放了一个被先选中的成员,而结构体的所有成员都存在3.对于union的不同成员赋值,将会

2017-07-23 20:03:41 1138

原创 unsigned int与int相加如何转化问题

有符号数和无符号数在一起运算,不要以为遵循的仍然是短的向长的靠齐。以前我们知道,如果一个short和一个int在一起运算,首先编译器会将short自动转换为一个int类型中间变量,然后进行运算。但是有符号数和无符号数在一起运算的话,并不是这样。整形数据转换的相关知识:首先说说符号数和无符号数之间的转换。无符号数可以转换为有符号数,有符号数也可以转化为无符号整形,这之间的转换一般编译器也不会

2017-07-13 17:07:00 2168

原创 UML建模——状态图

状态图目录:一、状态图简介(Brief introduction)二、状态图元素(State Diagram Elements)1、状态(States)2、转移(Transitions)3、动作(State Actions)4、自身转移(Self-Transitions)5、组合状态(Compound States)6、进入节点(Entry Point)7、退出

2017-04-25 15:56:27 566

原创 C++中static,const,mutable关键字

1、空类默认生成的成员class Empty{};Empty();//默认构造函数Empty(const Empty&);//默认拷贝构造函数~Empty();//默认析构函数Empty& operator=(const Empty&);//默认赋值运算Empty* operator&();//取址运算符const Empty* operator&() const;//

2017-02-10 20:33:09 521

原创 面向对象的编程(一)

1、类的声明格式:class 类名称      {          public:          private:          protected:      }关键字public后面的指的是类与外部的接口,任何函数都可以访问的公有数据类型和函数关键字private后面声明只允许本类中的函数访问,而类外部的任何函数都不能访问关键字protected后

2017-02-09 09:09:54 261

原创 C++理论概述及其对C语言的升级

1、为什么选择C++语言?首先其作为嵌入书工程师的岗位需求,其次其是面向对象的编程语言,直接分析用户需求中涉及的各个实体,在代码中描述现实世界中的实体,关联各个实体协同工作来解决问题,能够适应用户需求的不断变化,直接利用面向过程方法的优势,最后C++明显的优势在于学习C++可以强化C语言编程能力,提高编程的代码质量,还可以帮助学习其他编程语言 2、C++为什么难学?C++支持过程式

2017-02-08 09:10:27 441

原创 Linux shell之打印命令

1、echo 命令echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式:echo arg您可以使用echo实现更复杂的输出格式控制。----------显示转义字符"echo "\"It is a test\""结果将是:"It is a test"双引号也可以省略。 ----------显示变量nam

2016-12-27 22:23:57 7912

原创 C语言——打印空心正方形

请以尽量高效的方法用”*”打印出一个空心正方形,num为边长#include int main(){    int x,y,num;    printf("please input the num:\n");    scanf("%d",&num);    for(x = 0; x     {        for(y = 0 ; y

2016-12-26 22:30:17 16941

原创 heap和stack区别

heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(

2016-12-25 22:44:33 420

原创 Makefile的作用

makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make程序)首先读取makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定CPP文件的编译来产生特定的OBJ文件

2016-12-24 21:21:26 281

原创 如何选择多进程还是多线程

1)需要频繁创建销毁的优先用线程原因请看上面的对比。这种原则最常见的应用就是Web服务器了,来一个连接建立一个线程,断了就销毁线程,要是用进程,创建和销毁的代价是很难承受的2)需要进行大量计算的优先使用线程所谓大量计算,当然就是要耗费很多CPU,切换频繁了,这种情况下线程是最合适的。这种原则最常见的是图像处理、算法处理。3)强

2016-12-23 22:13:38 1788

原创 strstr的自我实现

包含文件:extern char *strstr(char *str1, const char *str2);11语法: strstr(str1,str2)str1: 被查找目标 string expression to search. str2: 要查找对象 The string expression to find.返回值:若str2是str1的子串,则返回

2016-12-22 22:41:49 367

原创 C语言——链表倒数结点

编写一个程序,实现输出链表中倒数第K个结点ListNode * FindKthToTail(LisNode *head, unsigned int k){ if(head == NULL || K == 0) //入口参数检查!!! { return NULL; } int i; ListNode *pAhead

2016-12-21 22:15:41 308

原创 堆和栈的区别

简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据

2016-12-20 22:43:28 235

原创 编程实现蛇形代码的输出

编写一个程序,输出类似的蛇形代码: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9#include #include int main(){int n;int x,y,round;//a[x][y],x是二维数组的第一个下标,y是二维数组的第二个下标,//

2016-12-19 22:28:13 762

原创 const使用方法

1. const的用法:(1)定义常量(2)修饰函数的参数(3)修饰函数的返回值(4)修饰函数的定义体2. 用const 修饰函数的参数(1)const 只能修饰输入参数如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针。    例如:void StringCopy(char *strDestination, const char

2016-12-18 21:18:06 738

原创 面试习题整理(一)

一、填空选择题1、请写出 char *p 与“零值”比较的 if 语句      if(NULL == p)     2、写出打印结果_255_ #include #include int main() {    char a[1000];    int i;    for(i=0;i    {      a[i]=-1-i;      }

2016-12-17 22:53:57 297

转载 B/S架构简介

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和

2016-12-16 22:15:05 35834 2

转载 C/S架构

在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/服务器网,Client/Server。在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。  这里客户和服务器都是指通信中所涉及的两个应用进程(软件)。使用计算机的人是计算机的“用户”(user)而不是“客户”(client)。但在许多国外文

2016-12-15 23:15:45 766

原创 http常见的请求头

HTTP常见的请求头(在HTTP/1.1 协议中,所有的请求头,除Host外,都是可选的)If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显

2016-12-14 22:32:25 1697

转载 http协议概念及其工作流程

一、概念协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相

2016-12-13 22:57:34 5130

原创 并发服务器和循环服务器

服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求, 对服务端的程序就提出了特殊的要求。目前最常用的服务器模型有:• 循环服务器:服务器在同一个时刻只可以响应一个客户端的请求• 并发服务器:服务器在同一个时刻可以响应多个客户端的请求UDP循环服务器UDP循环服务器的实现方法:UDP服务器每次从套接字上读取一个客户端的请求->处理

2016-12-12 21:22:23 3061

原创 tcp、UDP如何实现可靠传输

1、TCP如何实现可靠性传输?         确认机制、重传机制、滑动窗口。1.1可靠性         1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据长度将保持不变。由TCP传递给IP的信息单位称为报文段或段2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到

2016-12-11 21:35:57 1390

原创 TCP、UDP区别

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。UDP:        UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。        即使是出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为

2016-12-10 22:21:14 226

原创 七层和四层网络协议模型功能介绍

1、OSI七个层次的功能物理层 为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。数据链路层 负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。网络层 为了将数据分组从源(源端

2016-12-08 20:44:41 2605

原创 TCP三次握手四次挥手过程详解

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态

2016-12-07 22:04:02 678

原创 IP地址的分类及其分类方法介绍

基本的IP地址是分成8位一个单元(称为8 位位组)的32位二进制数。为了方便人们的使用,对机器友好的二进制地址转变为人们更熟悉的十进制地址。IP地址中的每一个8 位位组用0~255之间的一个十进制数表示。这些数之间用点(.)隔开,这是所谓的点-十进制格式。因此,最小的IPv4地址值为0.0.0.0,最大的 地址值为255.255.255.255,然而这两个值是保留的,没有分配给私人的端系统。 

2016-12-06 22:06:47 1297

转载 二叉树整理(五)

1、由前序遍历序列和中序遍历序列重建二叉树二叉树前序遍历序列中,第一个元素总是树的根节点的值。中序遍历序列中,左子树的节点的值位于根节点的值的左边,右子树的节点的值位 于根节点的值的右边。 递归解法: (1)如果前序遍历为空或中序遍历为空或节点个数小于等于0,返回NULL。 (2)创建根节点。前序遍历的第一个数据就是根节点的数据,在中序遍历中找到根节点的位置,可分别得知左子

2016-12-05 21:27:44 222

原创 二叉树整理(四)

1、求二叉树的镜像递归解法: (1)如果二叉树为空,返回空 (2)如果二叉树不为空,求左子树和右子树的镜像,然后交换左子树和右子树 参考代码如下:BinaryTreeNode * Mirror(BinaryTreeNode * pRoot){ if(pRoot == NULL) // 返回NULL return NULL; BinaryTr

2016-12-04 21:18:29 229

原创 二叉树整理(三)

1、求二叉树中叶子节点的个数递归解法: (1)如果二叉树为空,返回0 (2)如果二叉树不为空且左右子树为空,返回1 (3)如果二叉树不为空,且左右子树不同时为空,返回左子树中叶子节点个数加上右子树中叶子节点个数 参考代码如下:int GetLeafNodeNum(BinaryTreeNode * pRoot){ if(pRoot == NULL)

2016-12-03 21:20:21 350

原创 二叉树整理(二)

1、分层遍历二叉树(按层次从上往下,从左往右)相当于广度优先搜索,使用队列实现。队列初始化,将根节点压入队列。当队列不为空,进行如下操作:弹出一个节点,访问,若左子节点或右子节点不为空,将其压入队列。void LevelTraverse(BinaryTreeNode * pRoot){ if(pRoot == NULL) return; queue q

2016-12-02 21:17:00 273

原创 二叉树题目整理(一)

二叉树节点定义struct BinaryTreeNode{    int m_nValue;    BinaryTreeNode* m_pLeft;    BinaryTreeNode* m_pRight;};1、求二叉树中的节点个数递归解法: (1)如果二叉树为空,节点个数为0 (2)如果二叉树不为空,二叉树节点个数 = 左子树节点个数 + 右子树

2016-12-01 22:00:03 331

原创 网络编程常见问题

1、TCP和UDP的区别:1)TCP提供面向连接的传输,通信前要先建立连接(三次握手机制);UDP提供无连接的传输,通信前不需要建立连接。2)TCP提供可靠的传输(有序,无差错,不丢失,不重复);UDP提供不可靠的传输。3)TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输,没有分组开销。4)TCP提供拥塞控制和流量控制机制;UDP不提供拥

2016-11-30 21:24:25 260

转载 并发无锁队列学习(一)

1、概述队列在计算机中非常重要的一种数据结构,尤其在操作系统中。队列典型的特征是先进先出(FIFO),符合流水线业务流程。在进程间通信、网络通信之间经常采用队列做缓存,缓解数据处理压力。结合自己在工作中遇到的队列问题,总结一下对不同场景下的队列实现。根据操作队列的场景分为:单生产者——单消费者、多生产者——单消费者、单生产者——多消费者、多生产者——多消费者四大模型。其实后面三种的队列,可以归

2016-11-29 22:10:07 466

转载 Linux笔试常见填空题

一.填空题:在Linux系统中,以 文件 方式访问设备 。Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。Linux文件系统中每个文件用 i节点 来标识。全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。链接分为: 硬链接 和 符号链接 。超级块包含了i节点表 和 空闲块表 等重要的文件系统信息。某文件的权限为:d-rw-r–_r–

2016-11-28 22:20:30 1713

原创 无线传感网——南京工程学院(考试总结)

1.无线传感网:WSN(wireless sensor networks)、现场总线控制系统(FCS)、分布式控制系统(DCS)2.传感网的三要素:传感器、感知对象、观察者3.传感器网络节点的组成:传感单元、处理和存储单元、无线通信单元、能源供给。4.什么是无线传感网?答:是由一组无线传感器节点以Ad hoc(自组织)方式组成的无线网络,其中包括普通节点和汇聚节点,目的是协作地感知、收

2016-11-27 21:43:11 5239

原创 SDH介绍及其原理和发展方向

简介:SDH(Synchronous Digital Hierarchy,同步数字体系)光端机容量较大,一般是16E1到4032E1。SDH是一种将复接、线路传输及交换功能融为一体、并由统一网管系统操作的综合信息传送网络,是美国贝尔通信技术研究所提出来的同步光网络(SONET)。国际电话电报咨询委员会(CCITT)(现ITU-T)于1988年接受了SONET 概念并重新命名为SDH,使其成为不

2016-11-26 21:26:43 6193

设计模式的六大原则

设计模式学起来吧

2017-08-01

09-16年中级软件设计师真题及答案

对于软考来说,刷题很有效,刷起来吧

2017-07-13

USB-A形封装

USB-A形封装

2016-09-27

空空如也

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

TA关注的人

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