03 2017 档案

摘要:·批处理系统:(用户脱机使用、成批处理、多道程序运行) 批处理系统,又名批处理操作系统。批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。这种采用批量处理作业技术的操作系统称为批处理操作系统。批处理操作系统分为单道批处理系统和多道批处理系统。批处理操作系统不具有交互性, 阅读全文
posted @ 2017-03-31 14:13 Strawberry丶 阅读(1289) 评论(0) 推荐(0) 编辑
摘要:·OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI的七层协议体系结构的概念清楚,理论也比较完整,但它既复杂又不实用。 ICP/IP体系结构则不同,它现在已经得到了非常广泛的应用,TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为 阅读全文
posted @ 2017-03-31 10:27 Strawberry丶 阅读(8244) 评论(0) 推荐(3) 编辑
摘要:转自:http://www.cnblogs.com/dongsheng/p/3343939.html 一、纯虚函数定义 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“= 0”二、引入原因 1、为了方便使用多态特 阅读全文
posted @ 2017-03-30 20:35 Strawberry丶 阅读(396) 评论(0) 推荐(0) 编辑
摘要:引言 计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。 拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同 阅读全文
posted @ 2017-03-29 16:30 Strawberry丶 阅读(4690) 评论(0) 推荐(0) 编辑
摘要:1. 适合于中等城市的本地网的网路组织是? 答案:汇接局全覆盖 解析: ·小城市-端局全覆盖 ·中等城市-汇接局全覆盖 ·大城市-汇接局分区 2. 解析: 1.XSS 全称“跨站脚本”,是注入攻击的一种。其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有Java 阅读全文
posted @ 2017-03-28 21:01 Strawberry丶 阅读(377) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/yby4769250/article/details/7294696 在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的。 但是,GUN中却允许使用,而且,很多时候,应用在了变长结构体中,如: s 阅读全文
posted @ 2017-03-28 20:11 Strawberry丶 阅读(1520) 评论(0) 推荐(1) 编辑
摘要:1. 解析: A:在GCC下输出:0 在VC6.0下输出:1 B:在GCC下输出:段错误 (核心已转储) 在VC6.0下输出:已停止工作,出现了一个问题,导致程序停止正常工作。 C:正常 D:在GCC下输出:-1 0 在VC6.0下输出:0 0 2.运行下面这段代码,会出现的情况是: void Ge 阅读全文
posted @ 2017-03-28 19:56 Strawberry丶 阅读(1213) 评论(0) 推荐(0) 编辑
摘要:1. (判断) 答案:错 缓冲区有两块:高速缓存区(物理存在)和磁盘缓存区(逻辑存在,实际是内存一块),都不在外存(硬盘)。 2. 操作系统的功能:处理机管理(进程管理)、作业管理、存储管理、设备管理、文件管理。 对程序的编译是编译应用程序来完成的。 3. 答案:A 采用索引这种结构,逻辑上连续的文 阅读全文
posted @ 2017-03-27 20:59 Strawberry丶 阅读(619) 评论(2) 推荐(0) 编辑
摘要:因此我们先来介绍一下死锁: 死锁特征 当出现死锁时,进程永远不能完成,并且系统资源被阻碍使用,阻止了其他作业开始执行。在讨论处理死锁问题的各种方法之前,先深入讨论一下死锁的特征。 ·必要条件 (1)互斥:至少有一个资源必须处于非共享模式,即一次只有一个进程使用。如果另一进程申请该资源,那么申请进程必 阅读全文
posted @ 2017-03-27 20:11 Strawberry丶 阅读(5137) 评论(0) 推荐(0) 编辑
摘要:1. 答案:A 这里考查转义字符,注意 \\ 表示字符 \\123表示字符 {\t 表示制表符这些都是一个字符。 2. 答案C 先不看有没有重复的,共5个字母,有5×4×3×2×1 = 120种组合. 然后有两个重复的i,所以应该除以2,120 / 2 = 60,所以答案C 3. 答案:n ( n 阅读全文
posted @ 2017-03-26 21:49 Strawberry丶 阅读(282) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/morewindows/article/details/7429155 上一篇《多线程--第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果 阅读全文
posted @ 2017-03-25 21:56 Strawberry丶 阅读(295) 评论(0) 推荐(0) 编辑
摘要:64位操作系统,不同类型变量对应的字节数为: char : 1个字节 char*(即指针变量) : 8个字节 //32位占4个字节 short int : 2个字节 int : 4个字节 unsigned int : 4个字节 float : 4个字节 double : 8个字节 long : 8个 阅读全文
posted @ 2017-03-25 14:40 Strawberry丶 阅读(785) 评论(0) 推荐(0) 编辑
摘要:正确答案:D 解析: C语言中变量以补码形式存放在内存中,正数的补码与原码相同,负数求补码方式为(符号位不变,其余各位取反,最后末尾加1); 32位机器:int 32位,short 16位。 x = 127,正数,原码:0111 1111,补码:0111 1111,扩展到32位高位补0,结果为000 阅读全文
posted @ 2017-03-25 13:56 Strawberry丶 阅读(1390) 评论(0) 推荐(0) 编辑
摘要:CSomething a();// 没有创建对象,这里不是使用默认构造函数,而是定义了一个函数,在C++ Primer393页中有说明。 CSomething b(2);//使用一个参数的构造函数,创建了一个对象。 CSomething c[3];//使用无参构造函数,创建了3个对象。 CSomet 阅读全文
posted @ 2017-03-25 13:43 Strawberry丶 阅读(1842) 评论(0) 推荐(0) 编辑
摘要:首先来看一下今天做的一道题: 解析: union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。 一个union 只配置一个足够大的空间以来容纳最大长度的数 阅读全文
posted @ 2017-03-24 20:42 Strawberry丶 阅读(997) 评论(0) 推荐(0) 编辑
摘要:函数模板的格式: 类模板的格式为: 阅读全文
posted @ 2017-03-24 20:12 Strawberry丶 阅读(367) 评论(0) 推荐(0) 编辑
摘要:循环输入输出处理常见问题 1、为什么需要循环输入输出:通常来说OJ对于每道题里面有.in和.out文件,分别表示测试数据的输入和输出。如果某些编程题的所有数据都只做在一个.in和一个.out中,这样就会变成多组测试了,所以需要提交的代码中循环处理。 2、处理方法:其实这个问题可以避免,就是编程题后台 阅读全文
posted @ 2017-03-24 17:24 Strawberry丶 阅读(2186) 评论(1) 推荐(3) 编辑
摘要:转自:http://blog.csdn.net/morewindows/article/details/7421759 本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateT 阅读全文
posted @ 2017-03-24 16:55 Strawberry丶 阅读(740) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/u013172314/article/details/50846198 如果添加方法不正确,可能会出现pthread_create’未定义的引用,所以下面我讲一下正确的配置方法。 首先介绍一下我的安装平台和需要下载的工具包: win7 64位,code 阅读全文
posted @ 2017-03-23 17:37 Strawberry丶 阅读(1563) 评论(0) 推荐(0) 编辑
摘要:题目转自:http://blog.csdn.net/morewindows/article/details/7392749 ·线程的基本概念、线程的基本状态及状态之间的关系? 线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程 阅读全文
posted @ 2017-03-23 16:16 Strawberry丶 阅读(700) 评论(0) 推荐(0) 编辑
摘要:转自:http://jennica.space/2017/03/21/os-principle/ 大纲如下: 1.操作系统概述2.操作系统运行环境3.进程线程模型4.处理器调度5.同步机制6.存储模型7.文件系统8.I/O系统9.死锁 ·操作系统概述 1.执行程序:通过调度选中程序开始执行,在执行过 阅读全文
posted @ 2017-03-23 15:09 Strawberry丶 阅读(2396) 评论(0) 推荐(1) 编辑
摘要:事务 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务。 概念 一个数据库事务通常包含对数据库进行读或写的一个操作序列。它的存在包含有以下两个目的: 1、为数据库操作 阅读全文
posted @ 2017-03-22 19:59 Strawberry丶 阅读(1680) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.chinaunix.net/uid-10073362-id-225057.html 数据库范式是数据库设计中必不可少的知识,没有对范式的理解,就无法设计出高效率、优雅的数据库。甚至设计出错误的数据库。而想要理解并掌握范式却并不是那么容易。教科书中一般以关系代数的方法来解 阅读全文
posted @ 2017-03-22 18:50 Strawberry丶 阅读(30513) 评论(6) 推荐(22) 编辑
摘要:范式(深入了解可参考http://www.cnblogs.com/lca1826/p/6601395.html) 第一范式:数据库表的每一项都是不可分割的原子数据项,不能是集合。比如班级信息表里面不能有班级的学生。 第二范式:在第一范式的基础上,所有属性完全依赖于主键,完全依赖就是不能只是取决于主键 阅读全文
posted @ 2017-03-22 18:21 Strawberry丶 阅读(1397) 评论(0) 推荐(1) 编辑
摘要:参考:http://blog.csdn.net/macdroid/article/details/49070185 在学习TCP之前我们先来看一下可靠数据传输需要提供什么样的机制: ·差错检测机制:检测数据包是否出现比特差错 ·反馈机制:接收端对接收到的数据包的反馈 ·序列号机制:解决冗余数据包问题 阅读全文
posted @ 2017-03-22 15:08 Strawberry丶 阅读(847) 评论(0) 推荐(0) 编辑
摘要:DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类。但很少有人知道DNS分别在什么情况下使用这两种协议。 先简单介绍下TCP与UDP。 TCP是一种面向连接的协议,提供可靠的数据传输,一般服务质量要求比较高的情况,使用这个协议。UDP 阅读全文
posted @ 2017-03-22 12:49 Strawberry丶 阅读(5364) 评论(0) 推荐(0) 编辑
摘要:UDP(用户数据报协议) 下面是UDP的报文段格式: 可以看出UDP的首部长度是固定的,共64bit,即8个字节。 校验和:提供了差错检测得功能,即用于确定当UDP报文段从源到达目的时,其中的比特是否发生了改变。 注:虽然UDP提供了差错检验,但它并不能进行差错恢复。 UDP提供的是不可靠的数据传输 阅读全文
posted @ 2017-03-21 23:22 Strawberry丶 阅读(499) 评论(0) 推荐(0) 编辑
摘要:堆的定义: 最大树(最小树):每个结点的值都大于(小于)或等于其子结点(如果有的话)值的树。最大堆(最小堆):最大(最小)的完全二叉树。 最大堆的抽象数据结构: 下面是一些简单函数的实现: 下面来看几个重要的操作的实现: ·堆的插入操作 (1)新元素添加到末尾(保持完全二叉树的性质);(2)为了保持 阅读全文
posted @ 2017-03-20 19:30 Strawberry丶 阅读(427) 评论(0) 推荐(0) 编辑
摘要:·最简单的情形--(一个生产者 + 一个消费者 + 一个大小为1的有限缓冲) 首先来分析其中的同步关系: ·必须在生产者放入一个产品之后,消费者才能够从缓冲中取出产品来消费。·只有在消费者从缓冲区中取出产品(消费)之后,生产者才能再放新的产品进缓冲区。 下面我们用P(Producer)来表示生产者进 阅读全文
posted @ 2017-03-20 15:33 Strawberry丶 阅读(1817) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4] 阅读全文
posted @ 2017-03-19 09:34 Strawberry丶 阅读(137) 评论(0) 推荐(0) 编辑
摘要:题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 阅读全文
posted @ 2017-03-19 09:17 Strawberry丶 阅读(154) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 【思路】遍历二叉搜索树,存入一个vector中,对该vector排序,返回第k个结点。 阅读全文
posted @ 2017-03-19 09:04 Strawberry丶 阅读(165) 评论(0) 推荐(0) 编辑
摘要:调度准则 为了比较CPU调度算法,分析员提供了许多准则,用于比较的特征对确定最佳算法有很大影响。这些准则包括: ·CPU使用率:需要使CPU尽可能忙。 ·吞吐量:一个时间单元内完成进程的数量。 ·周转时间:从进程提交到进程完成的时间。 ·等待时间:进程在就绪队列中等待所花时间之和。 ·响应时间:对于 阅读全文
posted @ 2017-03-18 18:47 Strawberry丶 阅读(436) 评论(0) 推荐(0) 编辑
摘要:题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 【思路】使用队列实现二叉树的层次遍历。 阅读全文
posted @ 2017-03-18 15:15 Strawberry丶 阅读(1025) 评论(1) 推荐(0) 编辑
摘要:题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 【思路】先按层次遍历存入,通过设立标志位,将偶数层翻转。 阅读全文
posted @ 2017-03-18 14:51 Strawberry丶 阅读(175) 评论(0) 推荐(0) 编辑
摘要:题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 【思路】递归,关键是isSame函数中的最后一句 阅读全文
posted @ 2017-03-18 13:53 Strawberry丶 阅读(138) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 阅读全文
posted @ 2017-03-18 13:22 Strawberry丶 阅读(147) 评论(0) 推荐(0) 编辑
摘要:题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 【思路】递归 阅读全文
posted @ 2017-03-17 18:39 Strawberry丶 阅读(158) 评论(0) 推荐(0) 编辑
摘要:题目描述 一个链表中包含环,请找出该链表的环的入口结点。 【思路】根据set集合的不重复,遍历链表时遇到的第一个重复结点就是环的入口结点。 阅读全文
posted @ 2017-03-17 09:50 Strawberry丶 阅读(131) 评论(0) 推荐(0) 编辑
摘要:在百度文库中的《使用telnet协议收发邮件》,我们可以很清楚地看到如何通过telnet来进行发送邮件,下面是一些需要用到的命令,通过以下命令可以很容易实现邮件发送功能。为了更好地理解其中每一步的含义,我决定自己写一份可以自动发送邮件的代码。 下面是程序运行后的截图: 下面是发送成功后的截图: 注: 阅读全文
posted @ 2017-03-16 22:30 Strawberry丶 阅读(1440) 评论(0) 推荐(0) 编辑
摘要:下图是因特网电子邮件系统的总体情况,从该图中我们可以看出它有3个重要组成部分:用户代理(user agent)、邮件服务器(mail server)和简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)。 用户代理允许用户阅读、回复、转发、保存和撰写报文。 邮件服 阅读全文
posted @ 2017-03-16 20:45 Strawberry丶 阅读(1223) 评论(0) 推荐(1) 编辑
摘要:我们知道有两种方式可以识别主机:通过主机名或者IP地址。人们喜欢便于记忆的主机名标识,而路由器则喜欢定长的、有着层次结构的IP地址。为了折中这些不同的偏好,我们需要一种能进行主机名到IP地址转换的目录服务。这就是域名系统(Domain Name System,DNS)的主要任务。 DNS运行在UDP 阅读全文
posted @ 2017-03-16 19:55 Strawberry丶 阅读(593) 评论(0) 推荐(0) 编辑
摘要:题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 【思路】可以 阅读全文
posted @ 2017-03-16 18:23 Strawberry丶 阅读(158) 评论(0) 推荐(0) 编辑
摘要:题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是 【思路】本题要注意考虑各种情况,下面代码有 阅读全文
posted @ 2017-03-16 14:20 Strawberry丶 阅读(152) 评论(0) 推荐(0) 编辑
摘要:操作系统中引入进程的目的,是为了描述和实现多个程序的并发执行,以改善资源利用率以及提高系统吞吐量。那为什么还需要引入线程呢?下面我们先来回顾一下什么是进程: 进程有两个基本属性:·资源的拥有者:给每个进程分配一虚拟地址空间,保存进程影像,控制一些资源(文件、I/O设备),有状态、优先级、调度。·调度 阅读全文
posted @ 2017-03-15 21:43 Strawberry丶 阅读(735) 评论(0) 推荐(0) 编辑
摘要:A 友元函数: 友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下: friend 类型 函数名(形式参数); 1.友元函数的声明可以放在类的私有部分,也可以放在公有部分,它 阅读全文
posted @ 2017-03-15 18:13 Strawberry丶 阅读(384) 评论(0) 推荐(1) 编辑
摘要:一个信号量S是一个整型量,除对其初始化外,它只能由两个原子操作P和V来访问。P和V的名称来源于荷兰文proberen(测试)和verhogen(增量),后面亦将P/V操作分别称作wait(), signal()。 Wait()/Signal()的伪码表示: 但这并不是信号量的最终实现,最终的信号量实 阅读全文
posted @ 2017-03-14 20:02 Strawberry丶 阅读(2865) 评论(0) 推荐(0) 编辑
摘要:对互斥的正确软件实现算法(面包店算法)是非常耗时的,现代的计算机系统都会提供简单的硬件指令,使用这些指令能够有效地解决临界区问题。 硬件提供一个TestAndSet指令,来实现原子指令的功能: 在执行上述TestAndSet()函数时是不可以被打断的,因此可以使用以下方法来实现进程的同步: 临界区条 阅读全文
posted @ 2017-03-14 19:12 Strawberry丶 阅读(331) 评论(0) 推荐(0) 编辑
摘要:题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均 阅读全文
posted @ 2017-03-14 16:57 Strawberry丶 阅读(214) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 【思路】B[i]的值可以看作下图的矩阵中每行的乘积。 下三角用连乘可以很容求得,上三角 阅读全文
posted @ 2017-03-13 20:47 Strawberry丶 阅读(156) 评论(0) 推荐(0) 编辑
摘要:题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 【思路1】需要一个容器 阅读全文
posted @ 2017-03-13 19:41 Strawberry丶 阅读(220) 评论(0) 推荐(0) 编辑
摘要:题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 【思路】考虑所有特殊情况 1.数字前面有空格,如s=" 123456",空格需舍弃。2.数字前出现了不必要或多于的字符导致数字认证错误,输出0。如s=" b1234",s=" + 阅读全文
posted @ 2017-03-12 19:11 Strawberry丶 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 【思路】 首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。第三步:重复上述两步,只是 阅读全文
posted @ 2017-03-12 18:15 Strawberry丶 阅读(163) 评论(0) 推荐(0) 编辑
摘要:题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 【思路】用&&的短路思想来求和 阅读全文
posted @ 2017-03-12 17:52 Strawberry丶 阅读(160) 评论(0) 推荐(0) 编辑
摘要:题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任 阅读全文
posted @ 2017-03-12 17:47 Strawberry丶 阅读(396) 评论(0) 推荐(0) 编辑
摘要:管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读空管道时,在数据写入管道前,进程将一直 阅读全文
posted @ 2017-03-12 16:16 Strawberry丶 阅读(926) 评论(0) 推荐(0) 编辑
摘要:文件传输协议:FTP 如下图所示:用户通过一个FTP用户代理与FTP交互。该用户首先提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接。然后,该用户提供用户标识和口令,作为FTP命令的一部分在该TCP连接上传送。一旦该服务器向该用户授权,用户就可以向远程 阅读全文
posted @ 2017-03-12 13:27 Strawberry丶 阅读(1885) 评论(0) 推荐(0) 编辑
摘要:1.HTTP概况 Web的应用层协议是超文本传输协议(HTTP),它是Web的核心。 HTTP由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文进行对话。HTTP定义了这些报文的格式以及客户机和服务器是如何进行报文交换的。下图是其基本思想: 当用户请求一 阅读全文
posted @ 2017-03-11 19:13 Strawberry丶 阅读(1490) 评论(0) 推荐(0) 编辑
摘要:应用层:提供用户与网络间的接口。 HTTP、FTP、SMTP 运输层:进程到进程间的数据传输。 TCP、UDP 网络层:主机到主机之间的数据传输。 IP、选路协议 数据链路层:相邻结点之间的数据传输。 PPP、以太网 物理层:在物理介质上传输比特流。 PDU: 协议数据单元PDU(Protocol 阅读全文
posted @ 2017-03-11 13:51 Strawberry丶 阅读(1859) 评论(0) 推荐(0) 编辑
摘要:首先我们要先来区分一下下面的几种体系结构: CS:Client/Server 客户-服务器结构BS:Browser/Server 浏览器-服务器结构 P2P:Peer to Peer 对等结构 BS其实是CS方式的一种特例,所以也应算在CS中。 CS:主机A如果运行客户端程序,而主机B运行服务端程序 阅读全文
posted @ 2017-03-10 20:50 Strawberry丶 阅读(3766) 评论(0) 推荐(0) 编辑
摘要:题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.. 阅读全文
posted @ 2017-03-09 16:39 Strawberry丶 阅读(177) 评论(0) 推荐(0) 编辑
摘要:题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a 阅读全文
posted @ 2017-03-09 14:53 Strawberry丶 阅读(193) 评论(0) 推荐(0) 编辑
摘要:vector 有个函数assign, 可以帮助执行赋值操作。 assign会清空你的容器。 assign函数: 函数原型: void assign(const_iterator first,const_iterator last); void assign(size_type n,const T& 阅读全文
posted @ 2017-03-09 13:48 Strawberry丶 阅读(15012) 评论(0) 推荐(0) 编辑
摘要:STL共有六大组件1、容器 2、算法 3、迭代器 4、仿函数 6、适配器 STL容器的实现原理 STL来管理数据十分方便,省去了我们自己构建数据结构的时间.其实,STL的实现也是基于我们常见的数据结构. 序列式容器:vector-数组,元素不够时再重新分配内存,拷贝原来数组的元素到新分配的数组中。l 阅读全文
posted @ 2017-03-09 13:30 Strawberry丶 阅读(3722) 评论(0) 推荐(0) 编辑
摘要:题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! 阅读全文
posted @ 2017-03-09 12:56 Strawberry丶 阅读(206) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/gyymen/article/details/4962873 首先介绍一下C++中的结构。对于一个结构: 如果有个变量MyStruct s,那么使用其中的成员元素时可以用: 如果采用指针方法访问,比如MyStruct * ps,那么同样的访问就必须使用 阅读全文
posted @ 2017-03-08 23:51 Strawberry丶 阅读(2675) 评论(1) 推荐(1) 编辑
摘要:转自:http://blog.csdn.net/xt_xiaotian/article/details/5714477 一、简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程 阅读全文
posted @ 2017-03-08 21:02 Strawberry丶 阅读(378) 评论(0) 推荐(0) 编辑
摘要:1.问题的引入: 为什么要使用malloc,主要是因为在代码中,为了节约内存,很多数据都是动态生成的,所以会用malloc,对应于C++中的new,底层还是调用malloc。 2.碎片的问题: 会有内部碎片与外部碎片的问题,内部碎片难以消除(因为字对齐之类的问题),而外部碎片是可以消除的(如果不消除 阅读全文
posted @ 2017-03-08 19:18 Strawberry丶 阅读(2638) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 int main() 8 { 9 vector vStr1; 10 vStr1.push_back("001"); 11 vStr1.push_back("002"); 12 vStr1.push_back("00... 阅读全文
posted @ 2017-03-08 17:53 Strawberry丶 阅读(735) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 【思路】同LeetCode中的Two Sum类似,但由于要将乘积最小的一组输出,因此需要一个辅助函数Si 阅读全文
posted @ 2017-03-08 16:50 Strawberry丶 阅读(145) 评论(0) 推荐(0) 编辑
摘要:题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2017-03-08 15:15 Strawberry丶 阅读(150) 评论(0) 推荐(0) 编辑
摘要:题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 【思路】此题考察的是异或运算的特点:即两个相同的数异或结果为0。 此题用了两次异或运算特点: (1)第一次使用异或运算,得到了两个只出现一次的数相异或的结果。 (2)因为两个只出现一次的数肯定不同 阅读全文
posted @ 2017-03-08 14:05 Strawberry丶 阅读(199) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 【思路1】递归 【思路2】DFS,用一个栈来存储结点,一个栈来存储当前深度 阅读全文
posted @ 2017-03-07 17:40 Strawberry丶 阅读(156) 评论(0) 推荐(0) 编辑
摘要:题目描述 统计一个数字在排序数组中出现的次数。 【思路】因为是排序数组,所以可以用二分法搜索到要查找的值在数组中的一个位置,接着向两侧扫描,遇到不等的就停止。 阅读全文
posted @ 2017-03-07 17:23 Strawberry丶 阅读(198) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入两个链表,找出它们的第一个公共结点。 【思路】找出两个链表的长度,然后让长的走两个链表的长度差,然后再一起走(因为两个链表用公共的尾部)。 阅读全文
posted @ 2017-03-07 16:56 Strawberry丶 阅读(137) 评论(0) 推荐(0) 编辑
摘要:题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 【思路】看到这样的题目,最简单的想法就是遍历每一个元素,让其与后面的元素对比,如果大于 阅读全文
posted @ 2017-03-07 16:35 Strawberry丶 阅读(173) 评论(0) 推荐(0) 编辑
摘要:题目描述 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置 【思路】当一个字符第一次出现的位置和它最后一次出现的位置相同,那么它就是只出现一次的数 阅读全文
posted @ 2017-03-07 09:37 Strawberry丶 阅读(174) 评论(0) 推荐(0) 编辑
摘要:题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 【思路1】递归,超时。。很明显在算到后面的时候每一个数都要算很长时间 【思路2】别人家的代码就是好。。。每一个 阅读全文
posted @ 2017-03-06 20:26 Strawberry丶 阅读(162) 评论(0) 推荐(0) 编辑
摘要:进程概念: 1.程序在执行中 2.一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。 进程与程序的差别: ·进程 动态, 程序 静态 ·进程 有生命周期,短暂的, 程序 相对长久的 ·进程 具有并发性, 程序 没有 ·进程是竞争计算机系统资源的基本单位 阅读全文
posted @ 2017-03-06 18:23 Strawberry丶 阅读(357) 评论(0) 推荐(0) 编辑
摘要:在C中: 方法: 1.C标准库中的sprintf, sscanf 2.C标准库还提供了 atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long long 型。 在C++中 方法:用C++的streanstream ·数字转字符 阅读全文
posted @ 2017-03-06 14:12 Strawberry丶 阅读(11265) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 【思路】 ·先将整型数组转换成string数组,然后将string数组排序,最后将排好序的字符串数组拼接出来。关 阅读全文
posted @ 2017-03-06 13:56 Strawberry丶 阅读(193) 评论(0) 推荐(0) 编辑
摘要:题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 【思路 阅读全文
posted @ 2017-03-05 21:28 Strawberry丶 阅读(215) 评论(0) 推荐(0) 编辑
摘要:题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1 阅读全文
posted @ 2017-03-05 21:17 Strawberry丶 阅读(143) 评论(0) 推荐(0) 编辑
摘要:【思路1】全排序(快排)之后取出前K个数。O(K+nlogn) 【思路2】冒泡排序的思想,但不用全排序,只要找出K个即可 阅读全文
posted @ 2017-03-05 20:51 Strawberry丶 阅读(292) 评论(0) 推荐(0) 编辑
摘要:而二维数组的动态创建则较为复杂: ·动态申请列大小固定的二维数组 ·动态申请大小不固定的二维数组 方式1: 访问数据的方式:直接通过a[i][j]访问第i行第j列的数据。 优缺点:通过a[i][j]访问数据容易,但是new的次数太多,释放空间不容易。 方式2: 访问数据的方式:通过a[i*(row+ 阅读全文
posted @ 2017-03-05 18:20 Strawberry丶 阅读(37618) 评论(0) 推荐(2) 编辑
摘要:·默认拷贝构造函数可以完成对象的数据成员值简单地复制 浅拷贝 ·对象的数据资源是由指针指示的堆时,默认拷贝构造函数仅作指针值的复制,需要显式定义拷贝构造函数 深拷贝 首先定义几个点: 浅拷贝: 深拷贝: 自定义的拷贝构造函数: 注:若是浅拷贝,当p1先执行析构函数之后,name所指向的内存被释放掉; 阅读全文
posted @ 2017-03-05 16:56 Strawberry丶 阅读(599) 评论(0) 推荐(0) 编辑
摘要:一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: 它的作用是:当标识符已经被定义过(一般是 阅读全文
posted @ 2017-03-05 16:42 Strawberry丶 阅读(371) 评论(0) 推荐(0) 编辑
摘要:·变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。 ·变量声明:用于向程序表明变量的类型和名字。 ·定义也是声明:当定义变量时我们声明了它的类型和名字。 ·extern关键字:通过使用extern关键字声明变量名而不定义它。 1.定义也是声明,extern声明不 阅读全文
posted @ 2017-03-05 15:59 Strawberry丶 阅读(3659) 评论(0) 推荐(0) 编辑
摘要:extern用法详解: 1. 声明外部实体 声明外部全局变量或对象,一般用于头文件中,表示在其它编译单元内定义的变量,链接时进行外部链接,如: extern int ivalue; 此时的extern是必须的,省略了extern编译器将视为定义而不是声明,一般地在源代码中定义变量并进行初始化,在头文 阅读全文
posted @ 2017-03-05 15:12 Strawberry丶 阅读(2435) 评论(0) 推荐(1) 编辑
摘要:转自:http://blog.csdn.NET/skyereeee/article/details/8000512 static的三个作用: (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍: 一、局部静态变量 阅读全文
posted @ 2017-03-05 13:48 Strawberry丶 阅读(4156) 评论(1) 推荐(2) 编辑
摘要:参考:http://blog.csdn.net/shihui512/article/details/9092439 1.new、delete、malloc、free之间的关系 malloc和free都是C/C++语言的标准库函数,new/delete是C++的运算符。 new调用构造函数,delet 阅读全文
posted @ 2017-03-04 18:33 Strawberry丶 阅读(15808) 评论(0) 推荐(2) 编辑
摘要:【要求】编写程序求出10万以内的所有素数,并将这些素数输出到一个文本文件中,每行文本只包含一个素数数据。 阅读全文
posted @ 2017-03-03 23:35 Strawberry丶 阅读(564) 评论(0) 推荐(0) 编辑
摘要:【思路】将文件中的内容按行读取存入一个字符串中,在输出时再为每一行加上行号。 阅读全文
posted @ 2017-03-03 22:27 Strawberry丶 阅读(2728) 评论(0) 推荐(0) 编辑
摘要:【思路】将每个数字都存入map中作为key值,将它们出现的次数作为value值,当value超过一半时则返回其key值。 阅读全文
posted @ 2017-03-03 16:54 Strawberry丶 阅读(193) 评论(0) 推荐(0) 编辑
摘要:【思路】从第一位开始,判断每一位字符的所有可能性,依此递归。 阅读全文
posted @ 2017-03-03 16:29 Strawberry丶 阅读(182) 评论(0) 推荐(0) 编辑
摘要:【思路】因为二叉搜索树的中序遍历就是递增排列的,所以只要在中序遍历时将每个结点放入vector中,再分别为每个结点的左右指针赋值即可。 阅读全文
posted @ 2017-03-03 15:24 Strawberry丶 阅读(151) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 struct RandomListNode { 3 int label; 4 struct RandomListNode *next, *random; 5 RandomListNode(int x) : 6 label(x), next(NULL), random(NULL) { 7 } 8 }; 9 *... 阅读全文
posted @ 2017-03-03 15:01 Strawberry丶 阅读(223) 评论(0) 推荐(0) 编辑
摘要:【思路】 ·递归先序遍历树, 把结点加入路径。 ·若该结点是叶子结点则比较当前路径和是否等于期待和。 ·弹出结点,每一轮递归返回到父结点时,当前路径也应该回退一个结点 注:路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 阅读全文
posted @ 2017-03-02 15:10 Strawberry丶 阅读(166) 评论(0) 推荐(0) 编辑
摘要:归并排序 【思想】 ·简单地将原始序列划分为两个子序列 ·分别对每个子序列递归排序 ·最后将排好序的子序列合并为一个有序序列,即归并过程 【特点】稳定 空间代价:O(n) 时间代价:O(nlogn) 注: ·尽管归并排序最坏比较次数比快速排序少,但它需要更多地元素移动,因此它在实用中不一定比快速排序 阅读全文
posted @ 2017-03-01 23:35 Strawberry丶 阅读(186) 评论(0) 推荐(0) 编辑
摘要:各种内排序方法的选择: 1.从时间复杂度选择 对元素个数较多的排序,可以选择快速排序、堆排序、归并排序;元素较少时,可以选择简单的排序方法。 2.从空间复杂度选择 尽量选择空间复杂度为O(1)的排序方法,其次选空间复杂度为O(logn)的快速排序方法,最后才选择空间复杂度为O(n)的二路归并排序方法 阅读全文
posted @ 2017-03-01 21:02 Strawberry丶 阅读(754) 评论(0) 推荐(0) 编辑
摘要:基数排序 【思想】基数排序属于“分配式排序”,分为高位优先法MSD和低位优先法LSD 低位优先法LSD: ·从最低位k0开始排序 ·对于排好的序列再用次低位k1排序 ·依次重复,直至对最高位kd-1排好序后,整个序列称为有序的 这是一个分、收;分、收;...;分、收的过程 【特点】稳定 空间复杂度: 阅读全文
posted @ 2017-03-01 21:01 Strawberry丶 阅读(451) 评论(0) 推荐(0) 编辑
摘要:1.直接选择排序 【思想】选出剩下的未排序数据中的最小元素与第i个元素交换 【特点】不稳定 空间代价:O(1) 时间代价:O(n^2) 2.堆排序 【思想】基于最大推来实现,效率更高。堆排序的基本思想是:首先将n个记录按关键码建成堆(初始堆),将堆顶元素与最后一个元素交换,然后将剩余的元素调整成堆. 阅读全文
posted @ 2017-03-01 20:54 Strawberry丶 阅读(205) 评论(0) 推荐(0) 编辑
摘要:1.冒泡排序 【思想】不停地比较相邻的记录,如果不满足排序要求就交换相邻数据,直到所有的记录都已经排好序 【特点】稳定 空间代价:O(1) 时间代价:O(n^2) -比较次数 -交换次数 ·最少:O(n) ·最少:0 ·最多:O(n^2) ·最多:O(n^2) 2.快速排序 【思想】基于分治法的排序 阅读全文
posted @ 2017-03-01 17:53 Strawberry丶 阅读(1980) 评论(0) 推荐(0) 编辑
摘要:1.直接插入排序 【思想】利用有序表的插入操作进行排序 有序表的插入:将一个记录插入到已排好序的有序表中,从而得到一个新的有序表 【特点】稳定 空间代价:O(1) 时间代价:O(n^2) 2.折半插入排序 【思想】 ·在插入第i个记录时,前面的记录已经是有序的了 ·可以用二分法查找第i个记录的正确位 阅读全文
posted @ 2017-03-01 16:40 Strawberry丶 阅读(328) 评论(0) 推荐(0) 编辑
摘要:【思路】BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后序序列。下面是在讨论中看到的一份代码,已学习到。 阅读全文
posted @ 2017-03-01 11:55 Strawberry丶 阅读(116) 评论(0) 推荐(0) 编辑