自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 【计算机网络】第四章:TCP/IP五层实用模型 &三层网络层&

【计算机网络】第四章:TCP/IP五层实用模型 &三层网络层&/*----------------------------------------------------------------------------------------------*/目录重点知识网络层功能数据交换方式数据交换方式: 电路交换:事先约好路径 报文交换:串行转发 分组交换:并行转发分组 ​对比:分组交换的传输时延更小,更快分组交换方式 细分:...

2020-07-22 20:30:59 114

原创 【计算机网络】第三章:TCP/IP五层实用模型 &二层数据链路层&

【计算机网络】第二章:TCP/IP五层实用模型 &二层数据链路层&目录数据链路层概述封装成帧 & 透明传输组帧的四种方法:1. 字符计数法2. 字符填充法3. 零比特填充法4. 违规编码法差错控制流量控制&可靠传输机制停止---等待协议后退N帧协议(GBN)选择重传协议(SR)介质访问控制静态划分信道动态分配信道随机访问 介质访问控制:1. ALOHA协议2. CSMA协议3. CSMA/CD.

2020-07-17 22:45:57 65

原创 【计算机网络】第二章:TCP/IP五层实用模型 &一层物理层&

2.1 物理层定义的标准物理层解决如何在链接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的主要任务:确定传输媒体的接口的一些特性,包括,机械特性:接口形状,大小,引线数量电气特性:例如规定电压范围(-5V-5V)功能特性:例如规定-5V上0,+5V是1过程特性:也称规程特性,规定建立连接时各个相关部件的工作步骤2.2 数据通信基础知识2.2.1 通信的目的是传送消息数据(data)——运送消息的实体。信号(signal)——数据的电气或电磁的表现。-&gt

2020-07-17 19:21:50 144

原创 【计算机网络】第一章②:网络协议分层体系结构

【计算机网络】网络协议分层体系结构网络协议:双方达成数据交换而建立的规则、标准或约定OSI本层数据(PDU)=上层传输数据(SDU)+本层的控制信息(PCI)OSI参考模型:七层介绍+各层功能传输数据-接收数据过程应用层:所有会与用户交互产生网络流量的程序HTTP、FTP、DNS、SMTP表示层:编码转换、数据压缩、数据压缩JPEG、ASCll会话层:需求端客户端与服务器端建立的会话连接ADSP、ASP...

2020-07-17 17:41:51 53

原创 【计算机网络】第一章①:网络基础知识点总结

【计算机网络】基础知识概述局域网:覆盖范围小,自己花钱购买设备, 带宽固定10M 100M 1000M,自己维护,最远范围100m广域网:距离远(>100m),花钱租带宽因特网:ISP是电信运营商internet service producer自己的机房,对网民提供访问Internet网站的访问:帧:数据报包括数据+网站和请求端的IP地址;后两部分是目标mac地址和原mac地址,即物理地址,传播过程中一直在变化。数据的请求:数据的返回:网页上的数据是一块

2020-07-17 17:18:46 102

转载 【计算机网络】第八章:因特网上的音频视频

【计算机网络】第八章:因特网上的音频视频目录Internet上的音频/视频概述1.1.多媒体信息的特点1.2.延迟的种类1.3.因特网是非等时的1.4.在接收端设置缓存1.5.缓存的影响1.6.举例1.7.在Internet上传输音频视频需要解决的问题1.8.因特网提供的三种音频/视频服务流式存储音频/视频1.1.下载文件的传统方法:1.2.具有元文件的万维网服务器1.3.媒体服务器1.4.现实案例交互式音频/视频一、电路交换二、IP

2020-08-05 17:06:55 191

转载 【计算机网络】第九章:无线网络

【计算机网络】第八章:因特网上的音频视频目录Internet上的音频/视频概述1.1.多媒体信息的特点1.2.延迟的种类1.3.因特网是非等时的1.4.在接收端设置缓存1.5.缓存的影响1.6.举例1.7.在Internet上传输音频视频需要解决的问题1.8.因特网提供的三种音频/视频服务流式存储音频/视频1.1.下载文件的传统方法:1.2.具有元文件的万维网服务器1.3.媒体服务器1.4.现实案例交互式音频/视频一、电路交换二、IP

2020-08-05 16:15:38 178

转载 【计算机网络】第七章:网络安全

【计算机网络】第七章:网络安全目录网络安全问题概述1.1.计算机网络面临的安全性威胁1.2.被动攻击和主动攻击1.3.计算机网络通信安全的目标1.4.恶意程序(rogue program)1.5.计算机网络安全的内容1.6.一般的数据加密模型两类密码体制一、对称密钥密码体制1.1.对称密钥的缺点与优点1.2.数据加密标准 DES1.3.DES 的保密性二、公钥密码体制(非对称密钥密码体制)2.1.加密密钥与解密密钥2.2.公钥算法的特点2.

2020-08-05 16:03:37 417

转载 软考:网络工程师知识点分析+思维导图

《网络工程师 》【总题】思维导图网工 【细分】思维导图 物理层 物理层 数据链路层 数据链路层 网络层 网络层 传输层 传输层 应用层 应用层 网络规划与设计 网络规划与设计 网络安全 ...

2020-08-05 10:21:44 289

转载 软考:软件设计师知识点分析+思维导图

原文连接:最新(17年)软件设计师知识点分析(思维导图)历年试题分析【分析完下方有17面软考脑图】:分析下方的脑图才本文经典部分!!!历年下午试题分析:上午题下午题...

2020-08-05 09:59:42 136

原创 【计算机网络】第六章:TCP/IP五层实用模型 &五层应用层&

【计算机网络】第六章:TCP/IP五层实用模型 &五层应用层&应用层 定义、功能传输层可以为 应用进程 提供 端到端 的通信服务,但是不同的网络应用的应用进程之间 通信规则不同网络应用模型域名解析系统:DNS实现域名 → IP地址的转换域名解析大致流程域名解析过程高速缓存:存放最近查询过的域名,以及获得这个域名映射信息的地点记录文件传输协议 FTP服务器端 客户端 的文...

2020-07-21 17:05:39 30

原创 【计算机网络】第五章:TCP/IP五层实用模型 &四层传输层&

【计算机网络】第五章:TCP/IP五层实用模型 &四层传输层&/*----------------------------------------------------------------------------------------------*/目录重点知识 传输层概述传输层的寻址与端口UDP协议UDP首部格式UDP校验过程TCP协议​TCP报文段的首部格式TCP连接管理(***三次握手/四次挥手)可靠性 & 连接?...

2020-07-21 16:50:07 61

判断2个字符串是否含有相同的字符

面试题,是纸上写的,发现了些错误,回来改进了下。写纸上和写计算机里并编译成功完全是两个效果。 开始没太多字符串操作,很繁琐、难点也多,后逐渐改进。 典型问题1: sizeof()局限于栈数组 char a[] = "asd213123123"; 形式,并且这种不能用'\0'判断是否结束(这种判断方式能很方便加在while条件中用于判断越界——b != '\0')。 如果是字符串常量: char *b = "dasadafasdf"; 这种情况,sizeof()就废掉了! 总之: 对号入座,前者sizeof、后者strlen~!不过sizeof(a)和strlen(b)还有另外一个区别,strlen不计算'\0',而sizeof要计算(前提是sizeof()不针对char指针) 典型问题2: 用什么来暂存并输出结果?还是只是记录下来相关位置——这是我底下未完成版本1想到的思路——用一个count[sizeof(A)]数组记录下A每个位置作为起点所能和B达到的最大重合,最后判断查找数组中最大值,此时目标子字符串的起点下标(i)和 i 对应的长度(counter[i])都有了。 这是针对不知道字符串大小并且不占用额外空间的做法,需要非常繁琐的操作,要加很多标记,越界判断也会有些麻烦(结合优势么,用字符串常量而不是栈空间中的字符数组,有'\0'——就好判断了!) (关于空间的占用,如果要用一个和字符串a一样长的数组counter来计录a中各起点对应与b最大重合子字符串,这个数组也要和a一样长,空间上也不合适,除非情形很特殊,a短b长,不然不如直接malloc()一个堆空间来储存当前最长“子字符串”,并实时更新) 先放一个改完编译测试成功的。 release1 //题目:要求比较A字符串(例如“abcdef"),B字符串(例如(bdcda)。找出重合度最大的子字符串,输出(根据OJ经验,输>出结果对即可) #include<stdio.h> #include<string.h> #include<malloc.h> main(){ char *A = "abcderfghi"; char *B = "aderkkkkkabcd"; int i,j,c = 0,count = 0; unsigned int maxSeg = 0; int max = strlen(A) > strlen(B) ? strlen(A) : strlen(B); char* final = (char*)malloc(sizeof(char) * (max + 1)); final[max] = '\0'; for(i = 0;A[i] != '\0';i++){ for(j = 0;B[j] != '\0';j++){ while(A[i + c] == B[j] && A[i+c] != '\0' && B[j] != '\0'){ count++; c++; j++; }                         if(count > maxSeg){                                 strncpy(final,(A + i),count);                                 maxSeg = count;                         } count = 0; c = 0; } } printf("%s\n",final); free(final); } 这是能将就用的第一个版本~!关于结束符'\0'能否影响free()的使用,觉得是完全不用操心的,因为malloc的大小是系统来保存的,删除时候系统来接手就完了,而'\0'结束符只是针对一些常规字符串操作,比如printf()用%s控制输出时~! 新难点:找到的子字符串同时一样长怎么办?那我这只能叫做”第一个最长的重合字符串“用两块空间来存储?三段等长怎么办? 如: "abclbcdlcdel" "kabckbcdkcde" abc长3,bcd长3,cde长3。。。 未完成版本1:这段是错误示范,初期定位模糊思路乱,有些函数和功能不把握,又在纸上写。 思路乱的一个后果就是前期想用i和j简单判断越界问题,后期又弄了i+c之类的下标, 修改思路: 把字符串换成“字符串常量”——带'\0'的,这样在小while中用 != '\0'就能判断出界问题。 把字符串变成字符串常量以后的另一个问题是sizeof不能用了,引入string.h,用strlen()替代即可。 //题目:要求比较A字符串(例如“abcdef"),B字符串(例如(bdcda)。找出重合度最大的子字符串,输出(根据OJ经验,输出结果对即可) //遗忘,未使用string.h相关函数。 #include<stdio.h> main(){ char A[] = "asdasd"; char B[] = "asdasd"; /*本版本处理方式为最通用的针对字符串大小未知情况的遍历——比如“字符串常量”——此时可用strlen()代替sizeof(),并引入<string.h>即可。 *但是因在纸上做题,在条件上做了简化————使用了sizeof()可确定大小的字符数组而非“字符串常量”。具体用sizeof()还是strlen()。这些小问题请读者自行区分。 *如果可用sizeof()确定大小,就可以用malloc()创建一个临时字符串来存储并输出最大字符子段,代码会简化很多~! *不过如果用malloc()保存最大子段,随着最大子段变化,需要不停的free()再重新malloc(),要注意 */ int i,j,flag,c = 0,temp = 0,max = 0,count[sizeof(A)]; for(i = 0;i < sizeof(A);i++){//以i为A中“子字符串”首位,遍历B,看B中与A[i]起的子字符串最大匹配数量是多少,记为count[i],每个count[i]对应A中一个字符 for(j = 0;j < sizeof(B);j++){ while(A[i + c] == B[j]){//准备了一个c做偏移,免得更改i会变乱 temp++; c++; j++ if(temp > count[i])//找出B中匹配度最高子段,不用记录下标,只需记录匹配的字符数量,A[i]是固定的起点,加上偏移量,就是这段 count[i] = temp; } //清零,准备面对新的起点j~!以j为起点再找匹配的一段字符串 //j不用恢复~!恢复原样的话,算上j++是移动了一位,不会死循环~!但是,因为这一段本来就是连续的,abcd都连续了,bcd和cd不用看了。 temp = 0; c = 0; } } //比较count数组,看哪个i对应子段越大 //temp = 0;//节省空间的考虑(虽然只有4B),怕不适应就改叫max,去声明一个max变量。 for(i = 0;i < sizeof(A);i++) if(count[i] > max){//找出最大的一个计数器~~~~并记录i!!! max = count[i];//这句可以精简掉,可能?不可以,作为“下标”可以被精简,因为有了flag~!但作为max不能少,做比较用——叫max比较好理解。 flag = i;//用flag记录相应最大子段的起始偏移量 } //输出该子段 for(i = flag;i < flag + count[flag];i++){//temp来源于前一个for循环,意为最大偏移量。 printf("%c",A[i]); } printf("\n"); } ———————————————— 版权声明:本文为CSDN博主「秦伟H」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/huqinwei987/article/details/25316699

2020-05-13

空空如也

空空如也

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

TA关注的人 TA的粉丝

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