自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 18考研-数据结构复习笔记-栈,队列,数组

大纲要求1.栈和队列的基本概念;2.栈和队列的顺序存储结构;3.栈和队列的链式存储结构;4.栈和队列的应用;5.特殊矩阵的压缩存储;(一般为小题,自主命题可能会有简答题,比较简单,很少独立出算法设计题)(自主命题对数组有要求)本章考点1.栈的类型定义2.栈的应用举例3.栈类型的实现4.队列的类型定义5.队列的实现6.数组的类型定义7.数组的顺序表示和实现8.特殊矩阵的压缩

2017-09-01 20:16:11 800

原创 18考研-计算机网络复习笔记-数据链路层

数据链路层(2-6分) 1.功能: 2.组帧: 3.差错控制:检错编码;纠错编码4.流量控制和可控传输机制(滑动窗口): 5.介质访问控制:信道划分随机访问(CSMA CSMA/CD(宽带)CSMA /CA(WiFi)协议)轮询访问令牌传递协议6.局域网:以太网IEEE802.3IEEE802.117.广域网 8.数据链路层设备网桥的概念和基本原理局域网交换机及其工作原理(只

2017-08-29 21:22:24 1926 5

原创 18考研-数据结构复习笔记-线性表03

(二)其他链式存储结构 1.循环链表:结束条件:后继是否为头结点单循环链表;a.可从表中任意位置开始遍历,(单链表只能从表头开始);b.使用尾指针提高效率;c.合并或分裂时,可以在直接链表指针处合并,时间复杂度可达O(1);双向链表;Typedef struct DulNode{Elemtypr data;Struct DulNode *prior;// 前驱指针Struct

2017-08-17 19:05:47 431

原创 18考研-数据结构复习笔记-线性表02

三、链式存储结构 详细实现过程可参考http://blog.csdn.net/lmj_like_c/article/details/51470071 (一)单链表 1.概念:用一组地址任意的存储单元存放线性表中的元素(这样的结点的序列为链表) 元素(数据的映像)+指针(指向后继元素的存储位置) = 结点以线性表中第一个数据元素地址为线性表的地址,称为线性表的头指针。 有时为操作方便,在第一

2017-08-15 16:56:55 338

原创 18考研-数据结构复习笔记-线性表01

第二章线性表 考纲要求: 一、线性表的定义和基本操作 二、线性表的实现(自主命题中,大小题都有,可能会有2道以上算法设计题): 1.顺序存储 2.链式存储 3.线性表的应用 本章考点: 一、线性表的逻辑结构 二、顺序存储结构 三、链式存储结构 1.单链表 2.循环链表,双向链表 3.顺序表和链表的比较(具体问题时如何选择)一、

2017-08-14 18:40:15 908

原创 18考研-计算机网络复习笔记-物理层

(一)通信基础 1.基本概念:信道:数据传输通道带宽:单位时间内传输数据速率,媒介中信号可用最高底值差bts码元:时间域的波形表示数字信号事,代表不同数字的基本波形(0、1)波特:单位时间内传输的码元数(两个波形 单位时间一个)比特率:单位时间内传输的比特数速率:计算机的网络性能计算比特bit:计算机中数据的单位 二进制带宽:单位时间内传输的比特K=2^10 = 1024M M=

2017-08-14 18:34:11 918 3

原创 分支限界法-最少步数走出迷宫

问题描述: 用户从屏幕输入m,n表示一个m*n的迷宫,0表示空地,1表示墙,给定起点的行,列;给定终点的行,列;输出最少到达目标的步数; 示例输入: 4 4 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 2 2 样例输出: 5问题分析: 1.根据分支限界法基本思想(详见上篇分支限界博客) (1)分支:当前位置每次有四种可能的走法上下左右,可分四个子

2017-04-20 18:12:47 2142

原创 穷举法-有趣的数字(腾讯2017实习生编程题)

问题分析: 1.暴力穷举出所有差值; 2.每当算出一个差值,进行比较,如符合要求则相应记录,如不符合,抛弃;代码展示:#include <iostream>int main(){ int n, temp; int A[100], Max[2] = {0}, Min[2] = {0}; std::cin >> n; for (int i(0); i < n; ++i

2017-04-17 19:26:19 447

原创 分支限界法-从1到36,最少要几步?

分支限界法基本思想: 分支限界法以广度优先或以最小消耗优先的方式搜索解空间树。 基本策略为: 1.先分支:在扩展结点处,生成其所有的子结点。 2.再限界:根据题目要求设置限界函数,根据函数值,选择所有子结点中最有利的结点作为下一个扩展结点。 经过两步使搜索朝着解空间树上最优的分支推进,以便尽快找出最优解。问题描述: 输入m,n。假设当前有三种操作:加1,乘2,平方;问从m变换至n最少需要

2017-04-11 21:06:39 944

原创 DP动态规划-电路布线问题

动态规划算法基本思想: 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。电路布线问题描述 : 在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i)) 将上端接线柱i与下端接线柱π(i)相连,如下图。其中,π(

2017-04-06 19:58:43 979 1

原创 回溯算法—N皇后问题

回溯算法基本思想: 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 八皇后问题: 是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互

2017-03-22 21:07:46 561

原创 两顺序容器中元素对比问题

问题描述: 创建两个vector,分别给两个容器中输入不同的几个字符串,然后对容器s1中存在而s2中不存在的元素调用函数f1,对s1,s2中都存在的元素调用f2,s2中存在而s1中不存在的调用f3; 代码展示:#include <iostream>#include <vector>#include <string>using namespace std;void f1(string s)

2016-11-06 19:18:34 321

原创 搜索空间中解不唯一的例子:完美立方

问题描述: a^3 = b^3 + c^3 + d^3为完美立方等式。 编写程序对任意给的正整数N,寻找所有的四元组(a,b,c,d)使得a^3 = b^3 + c^3 + d^3,其中1#include <iostream>using namespace std;void f(int n){ long int temp[101] = {0}; int a,

2016-10-25 20:02:15 429

原创 字符串处理-统计字符数

问题描述: 判断一个字符串中a~z哪个字母出现的次数最多; 样例: 输入: 2 abbccc adfadffasdf 输出: c 3 f 4代码展示:#include <iostream>#include <string.h>using namespace s

2016-10-25 15:01:07 335

原创 数学问题:亲密数

问题描述: 求出300以内的亲密数(范围可由控制台输入); 样例输出: 220 and 284 220: 1 2 4 5 10 11 20 22 44 55 110 284: 1 2 4 71 142问题分析: 1、亲密数定义:假设有a,b两个数,如果a的所有因子之和等于b,b 的所有因子之和也等于a,且a!=b,则称a

2016-08-15 18:00:35 1126

原创 数学问题:完数

问题描述: 求1到10000之内所有的完数,并表示出来;样例输出: 6 : 1 2 3; 28 : 1 2 4 7 14; 496 : 1 2 4 8 16 31 62 124 248; 8128 : 1 2 4 8 16 32 64 127 254 508 1016 2032 4064;

2016-08-15 11:09:55 511

原创 程序员奥运:分数分解问题

问题描述: 奥运裁判喜欢把一个分数分解成类似:1/a + 1/b 的格式; 这里a != b 为不同的整数, 分子必须为1; 样例输出: 比如分数为2/15: 可分解为: 1:1/8 + 1/120 2:1/9 + 1/45 3:1/10 + 1/30 4:1/12 + 1/20 如果分数为2/45则有多少种

2016-08-13 08:56:41 278

原创 计算题:分解质因数

问题: 每个合数都可以写成几个质数相乘的形式。其中每个质数是这个合数的因数,叫做这个合数的分解质因数。 输出样例: 输入样例:28; 输出样例:28 = 2 * 2 * 7;分析: 1、合数是相对于质数(素数)的概念; 2、可以先对这个合数进行任意分解(i,j); 3、对分解出来的因数分别进行判断,如果为素数则记录为结果之一进行输出,如果不是则继续分解,直至分解

2016-07-30 12:35:16 1072

原创 分治算法:乒乓球比赛的日程安排

乒乓球比赛的日程安排问题:设有n位选手参赛,初赛进行n-1天,每位选手每天必须比赛一次,不能轮空。编程求解赛程安排。分析:1、求n位选手的赛程安排,可采用分治算法的思想,将问题规模不断缩小,比如缩小到8,4,2等规模大小;2、分析2,4,8等小规模时的赛程安排:分治算法主要思想:(1)、若原问题规模大小不便计算,将问题原本规模分解成若干个规模较小的相同问题;

2016-07-18 20:29:45 2549 1

原创 穷举法:填运算符游戏

穷举法:填运算符游戏 输入若干个数如:5 5 5 5 5; 再输入一个结果如:5; 编程计算并输出所有可能的运算符组合;分析: 1、穷举的思想: 将每一种情况都计算到,从中筛选符合条件的结果; 2、我们将已经计算过的结果存储到一个变量中(变量命名为 left),准备和下一个数字进行运算(待运算的第一个数据存储到另一个变量中(变量命名为right))两个变量均为float型;

2016-07-14 21:44:07 677

原创 大整数相加

问题描述:求两个不超过200位的非负整数的和。输入:有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出:一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入:2222222222222222222233333333333333333333样例输出:55555555555555

2016-05-30 22:26:16 1785

原创 负数求余

首先来介绍一下进行除法时三种取整方式:1、向上取整:比如7/4,向上取整的意思就是取大于商的第一个整数,这样的话向上取整的答案就为2;2、向下取整:还是7/4,向下取整与向上相反取不大于商的第一个整数,这样的话结果就为1;3、向零取整:顾名思义,答案向0看齐,商的小数部分发生截取,7/4 = 1;不难发现向上或者向下时 其结果都不一定有(-a)/b= -(a/b),但是

2016-05-23 19:42:53 1629

原创 数据结构--线性表的链式表示与实现

上篇一篇博客中我们介绍了线性表的顺序表示与实现:顺序表是按照顺序将数据保存到内存之中,虽然存取方便但是也带来了一些问题:1、顺序表必须申请一整块连续的内存;2、插入删除元素时,当情况最坏时每个元素都要被移动;这两个原因导致顺序表的效率较低,为解决这两个问题我们可以使用链式存储的链表来实现线性表:1、链表是有一种采用动态存储的结构,可根据需要申请内存单元;----解决整块内存不够

2016-05-21 14:23:13 551

原创 数据结构—线性表的顺序表示与实现

计算机内部线性表存储方式:1、顺序存储:顺序表2、链式存储:链表顺序表示是指:用一组地址连续的存储单元依次存储线性表的数据元素;过程分析:假设线性表的每个数据元素需要占用x个存储单元,并以所占的第一个单元的存储地址作为数据元素起始的存储位置,因为使用一组连续的存储单元,所以下一个数据元素的位置就是当前首地址向后偏移x个单元即可,所以可以这样表示  存储位置LOC(ai+

2016-05-18 19:12:06 411

原创 反转字符串

问题描述:1、反转单词。任意输入一串单词,要求把每个单词反转,但每个单词的位置不要改变。如输入:I am happy, 则输出:I ma yppah。2、反转句子。任意输入一串单词,要求把每个单词的位置翻转过来,但每个单词的字母顺序不要改变。如输入:I am happy, 则输出:happy am I。完整代码:#include #include void reve

2016-05-17 19:34:59 408

原创 1000以内的回文素数

问题描述:回文数是指一个数无论从左到右还是从右到左读都是一样的数字;比如33,121,323,45654、、、、等具有对称特征的数字;根据以上描述求1000以内的回文素数;完整代码:#include #include bool judge(unsigned n){ if (n 2) return 0; if (n == 2) return 1;

2016-05-16 22:00:06 9502

原创 最大公约数与最小公倍数

最大公约数(greatest common divisor)与最小公倍数(Lowest Common Multiple):问题描述:输入两个数,输出它们的最大公约数和最小公倍数;完整代码:#includeusing namespace std;int GCD(int n1,int n2){ if (n1 % n2 == 0) //有些代码会在这

2016-05-13 15:23:00 544

原创 关于对ctype.h库中函数实现的理解

本来今天是计划要写进制转换的,但是博主又突然发现另一个比较好玩的东西,所以果断决定先来这个;相信大家或多或少都用过ctype.h (标准c)/ cctype(c++)这个库中的函数:函数原型: 函数功能:函数返回int isalpha(char ch) 检查ch是否是字母  是字母返回非0(在vs2015中为2),否则返回0int iscntrl(int

2016-05-11 20:02:00 1592

原创 利用递归解决进制转换问题

放寒假的时候博主在家学如何编程实现十进制与任意进制之间的转换,在网上搜集的了很多种方法,但奈何自己太渣好多都看的云里雾里,而且普片代码都比较长...然而今天博主再看递归部分的时候突然发现这道题的代码其实可以用递归很简洁的实现,希望对大家能有所帮助。问题描述:将十进制数转化为任意进制按格式并输出。输入格式:输入两个数,第一个数位需要转化的十进制数字,第二个数为要转成的进制数(2.

2016-05-10 21:21:47 845

原创 日期及时间问题-日历问题

最近博主参加了学校的一个小测试,其中有个日历问题说当前为某年某月某日星期几,让你输入一个数n,算出n天后是多少年多少月多少日星期几;完了之后博主当时并没有做出来,因为自己的方法还是比较复杂,代码也比较多。然后今天刚好和同学讨论到这个题发现他的方法比较简单,代码也少,总共就二十多行代码,在此分享给各位需要的同学;问题描述:假设现在是2016年1月1号周五,请你输入一个数n,编程计

2016-05-09 20:00:54 1497

原创 两人生日相同的概率

题目描述:假设你工作在一个有23人的办公室中,那么办公室中两人生日相同的机率有多少?完整代码:#include int main(){ int n; float p = 1; std::cin >> n; //输入总人数; for (int i(0); i = n; ++i) //这部分可以也可以从1开始,只需将(365

2016-05-09 17:38:24 4075

原创 简单计算题-鸡兔同笼

我国古代著名趣题之一。《孙子算经》中这样描述:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?”先来正确解的完整代码:#include int main(){ int rabbit, head, foot; std::cin >> head >> foot; rabbit = (foot - head

2016-05-08 13:16:25 974

空空如也

空空如也

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

TA关注的人

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