自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南京师范大学中北学院

代码从入门到放弃

  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

原创 一篇学懂图(最简洁易懂代码模板)

图中的一些基本术语:顶点(Vertex) ,边(Edge),子图(Subgraph)有向图和无向图关系比较:1.度和边:无向图度TD(vi)是边e的两倍有向图TD(vi)=ID(vi)+OD(vi)2.顶点n和边e:无向图:0≤e≤n(n-1)/2无向完全图(Undirected Complete Graph,UCG):e=n(n-1)/2 任意两个顶点之间均存在一条边有向图:0≤e≤n(n-1)有向完全图((Directed Complete Graph,DCG):e=n(n-1) 任

2021-05-05 18:30:35 658 1

原创 html学习知识点

1.<!DOCTYPE> 告诉浏览器使用哪种HTML版本来显示网页(他不是HTML标签,只是文档类型声明标签)2.lang zh-CN定义为中文,en为英文3.charset UTF-8字符集 以便计算机能够识别和存储各种文字)标签(记住语义)1.标题标签h1-h6 (重要性递减,每个标题独占一行,文字变粗变大)2.段落标签p /p (段落和段落间有一个空隙)3.换行标签br / 强制换行(段落和段落间没有空隙)文本格式化标签4.加粗strong或者b(推荐用前者)5.倾斜em

2022-05-11 00:08:15 119

原创 18zhuan_5

#include<iostream>using namespace std;struct SqList{ int a[100]; int len;};void Del(SqList *L,int s,int t)//s<t{ int temp_t=0; if(L->len==0||s>=t) return;//线性表为空或s,t不合法,返回 for(int i=0;i<L->len;i++){ if(L->a[i]>=s&a

2021-10-06 01:03:18 80

原创 关于http1.0 1.1 2.0的区别该怎么回答

首先http叫做超文本传输协议,用来将超文本标记语言html文档从web服务端传给另一边浏览器的客户端。因功能需求http会不断升级变化1.0:用户每次对浏览器有请求都要与服务器端建立一次TCP连接。就是用户每次操作一下,就是一次建立连接。服务器端不能跟踪每个客户端,操作结束,服务器也没有任何用户请求的记录1.0和1.1区别:(1.0的)connection:close,(1.1)connection:keep-alive(长连接)之后为啥会有1.1呢?就是1.1有了长连接这个功能。如果还像1.

2021-08-30 16:55:51 103

原创 运输层学习之路

理解面向通信部分的最高层,用户功能中的最低层这句话运输层是进程间的通信复用和分用(理解下图)复用:比如端口1和端口2这两个端口向下通过主机唯一的ip地址分用:向上通过主机发送给端口1和端口5网络层的ICMP(网际报文协议)PING是应用层直接使用网际层ICMP的一个例子,未通过运输层的TCP、UDPtraceroute(考察重点):用的是ICMP差错报文中的时间超过,设置报文生存时间TTL依次是1,2…每次经过路由器TTL-1, 当TTL=0报错,利用报错向源主机发送差错报告报文(大致

2021-08-09 17:43:33 51

原创 理解关键路径,知道这几点就行

关键路径:源点到汇点最长的路径下图(V1,V2,V5,V7,V9)就是关键路径。图中有向边表示活动,比如赋予图中a具体意义:关键路径所需时间为6+1+9+2=18ETV(事件最早发生时间)就具体化比如直接找最短时间…这个较好理解LTV(事件最晚发生时间)关键路径(V1,V2,V5,V7,V9)长度为18,两种情况:若计算顶点V2发生的最晚时间V2到V9时间:1+9+2=12 则V2最晚发生时间:18-12=6发现:关键路径上顶点最早发生时间等于最晚发生时间计算V6的最晚发生时间V6

2021-07-28 23:11:46 1284

原创 路由选择协议

分为静态路由选择策略和 动态路由选择策略动态(分层路由选择协议):内部网关协议IGP分为RIP(重点)和OSPF外部网关协议EGP分为BGP-41中RIP最多一条路径上15个路由,距离为16表示不可达 协议:距离向量看4-41例题(看会这个就够了)RIP报文格式中的IP数据报中有UDP首部(可能就是快)理解下面这张图:理解OSPF的红泛法,OSPF将自治系统划分为更小的区域 协议:链路状态2中BGP报文中是TCP首部 协议:路径向量...

2021-07-27 22:58:43 38

原创 计网常用协议功能整理

arp协议的主要功能是将IP地址解析为物理地址。使用ARP协议可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行功能:OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头

2021-06-23 11:43:21 247

原创 第四章 网络层

可靠交付由谁来负责?:端系统网络层不提供服务质量的承诺和IP协议配套使用:IP使用ARP地址解析协议,ICMP网际控制报文协议和IGMP网际组管理协议IGMP(多播)向上提供服务网络层以上使用的中间设备是网关直接交付的理解:H1->R1->R2->R3->H2,在R3->H2交付为直接交互,剩下的前面都是间接交付IP地址编址经过三个历史阶段:分类的IP地址、子网的划分、构成超网A类:0 B类:10 C类:110 D类:1110 E类:1111一个例子:222.1.

2021-06-19 20:13:50 41

原创 第五章 传输层

三次握手:因为A和B建立连接时候,A给B发送报文可能连续发了几个,B收到A第一个建立信息时候反馈给A,然后A再给B一个确认的确认四次挥手:A对B主动关闭对话,然后B给A反馈收到,但是B遇到A突然关闭,还有话可能没说完,所以A等B第二次发送数据报,然后收到后再确认一下...

2021-06-19 18:10:21 37

原创 第三章 数据链路层

数据链路层的信道主要分为两种:点对点信道和广播信道点对点用PPP协议:接收方每收到一个帧,就进行CRC检验。如果CRC检验正确就收下这个帧,反之,就直接丢弃,其他什么也不做链路:物理线路数据链路:链路+协议若收到的帧出差错了,直接丢弃这个帧(帧的)数据部分+首部/尾部=数据单元封装成帧:SOH和EOT进行帧定界,如果少了帧的尾部或者出现问题,那么会根据情况全部丢弃数据透明传输:如果中间出现了EOT那么就要规定中间部分看起来好像不存在一样,大概意思就是这样。转义字符ESC:发送端的数据链路层.

2021-06-13 21:09:35 84

原创 第二章 物理层

了解机械、电气、功能、过程这几个特性(不是考试重点)数据通信系统分为源系统(发送端)、传输系统(传输网络)、目的系统(接收端)计算机通过调制解调器:(调制)数字信号转变为模拟信号,(解调)模拟信号转变为数字信号模拟信号:声波、光波这些连续信号 。数字信号:码元这样的离散信号。单向通信:单工通信,无线或有线电广播、电视广播。 双向交替通信:半双工通信,比如打电话。 双向同时通信:全双工通信,比如打电话来自信源的信号称为基带信号。 载波(了解)常用编码方式:比特流0、1,不归零制高电1 低电0,j.

2021-06-04 00:16:28 74 1

原创 第一章 概述

第一章 概述三大网:电信网络//打电话用、有线电视网络//看电视、计算机网络//我们学的就是这个互联网的两个重要基本特点(互联网就是目前流行最广的标准译名)连通信和共享(考过):让用户终端连通交换信息和资源共享网络的网络=互联网 计算机网络(简称为网络)理解成小的局域网,互联网(网络的网络)理解为很多个计算机网络通过路由器连接成互联网 与网络连接的计算机常称为主机互联网从工作方式上分为两大块:边缘部分–用户能直接操作的比如手机、电视、电脑。 核心部分–比如路由器,为边缘部分提供服务所谓

2021-05-30 17:53:42 99 2

原创 网桥转发表

参考:https://blog.csdn.net/be_solider/article/details/78886239————————————————预备知识:网桥刚接入以太网时,网桥中的转发表是空的,随着站点间数据传输,网桥采用“自学习法”填写转发表内容。理解上图假设有以下5个站接在三个局域网中,并在发送数据,一开始转发表是空的。接下来H1发送数据帧给H5,讨论B1和B2对数据帧的处理和转发表的情况.H1发送数据帧给H5:数据帧进入网桥B1的端口1,B1中没有H1的记录,所以更新

2021-04-23 10:32:11 3953 1

原创 TDMA、CDMA(这俩同频原因),提到一点FDMA是什么,理清这些之间的关系

先说明一下在网上看到的巨清楚的解释拿来保存一下~首先要明白两个基本概念,一是无线频谱是有限的,所以有限的无线频谱要考虑如何复用(同样的一段频谱如何重复的使用)和多址(同样的一段频谱如何分给不同的用户使用),二是无线频谱的排他性,一段同样的无线频谱在同时同地给不同的人用,那么就会有强烈的同频干扰,要想办法降低这种同频干扰,或者是干脆使用不同的频率通信,只是这样会让有限的频谱显得更加紧缺。CDMA和TDMA都是多址技术,也就是解决同样的一段频谱如何在其覆盖范围内分给不同用户使用的问题。先来讲TDMA,也就是

2021-04-21 21:22:49 977

原创 4.5

4.5 编写从串s中删除所有与串t相同的子串的算法。#include<iostream>#define MaxSize 11using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; int s=t.size(); while(i<s){ if(j==-1||t[i]==t[j]) Next[++i]=++j;

2021-03-13 11:33:23 182

原创 高精度加模板

个人认为很好理解的高精度模板,注释完整了,有不懂的私我就行#include<iostream>#include<cstring>using namespace std;#define MaxSize 5050char a[MaxSize],b[MaxSize];int ah[MaxSize],bh[MaxSize],ch[MaxSize];//ch用来存储相加后的结果void Add(int sa,int sb,int id){ int sc=0;//sc刚开始

2021-03-12 14:55:06 91

原创 4.4

4.4 编写输入两个字符串s和t,统计串s包含串t个数的算法#include<iostream>#define MaxSize 6using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; int s=t.size(); while(i<s){ if(j==-1||t[i]==t[j]) Next[++i]=++j;

2021-03-06 22:11:17 439

原创 4.3

4.3 已知主串s=“cbaacbcacbcaacbcbc”,模式串t=“cbcaacbcbc”,求出t的next数组值和nextval数组值,并画出KMP算法。*#include<iostream>#define MaxSize 6using namespace std;int Next[MaxSize];int Nextval[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; int s=

2021-03-06 21:40:07 167 1

原创 4.2

4.2 计算下列串的next数组#include<iostream>#define MaxSize 10using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1;//i为当前匹配的位置,j为失配后跳转的位置(最长公共前后缀的长度) while(i<t.size()){ if(j==-1||t[i]==t[j]){

2021-02-28 00:03:40 119

原创 4.1

4.1 完成StrStr()函数,把主串中子串及以后的字符全部返回。例如主串“12345678”,子串“234”,返回“2345678”#include<iostream>#define MaxSize 10using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1;//i为当前匹配的位置,j为失配后跳转的位置(最长公共前后缀的长度) while(i

2021-02-27 23:29:15 88

原创 KMP模板

//KMP模板#include<iostream>#define MaxSize 6using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; while(i<t.size()-1){ if(j==-1||t[i]==t[j]){ i++,j++; Next[i]=j;

2021-02-25 19:34:49 92

原创 3.9

3.9 用两个栈来实现队列,请写出队列基本操作的算法#include<iostream>#include<stack>#define MaxSize 5using namespace std;stack<int >a,b;int main(){ for(int i=0;i<MaxSize;i++) a.push(i); for(int i=0;i<MaxSize;i++){ b.push(a.top());

2021-02-23 16:26:29 71

原创 3.8

3.8 以带头结点的循环链表表示队列,只设一个表尾指针。试编写相应置队列空、入队和出队操作。#include<iostream>using namespace std;struct LinkQueue{ LinkQueue *next; int val;};struct Node{ LinkQueue *rear;};void EnQueue(Node &q){//入队,别忘了& LinkQueue *L=new LinkQueu

2021-02-22 23:14:34 67

原创 3.7

3.7 一维数组a[m]存放循环队列的元素,设置变量num表示当前队列中元素的个数,判断队列的状态为’空’,还是’满’。试给出此循环队列满的条件,并编写入队和出队算法#include<iostream>#include<queue>#define MaxSize 3using namespace std;struct SeqQueue{ int a[MaxSize];//存放队列元素的数组 int front,rear;//队头和队尾指针};void

2021-02-21 22:38:49 145

原创 3.6

3.6 一维数组a[m]存储循环队列的元素,若要使这m个分量都得到应用,则另设一辅助标志变量flag判断队列为‘空’还是‘满’,试编写入队和出队算法#include<iostream>#include<queue>#define MaxSize 3using namespace std;struct SeqQueue{ int a[MaxSize];//存放队列元素的数组 int front,rear;//队头和队尾指针};int Judge(SeqQ

2021-02-21 21:36:07 388

原创 3.5中缀转后缀简洁代码

3.5 现有中缀表达式E=((A-B)/C+D*(E-F))*G,写出与E等价的后缀表达式中缀转后缀表达式网上优质代码太少,本人参考了书本,网络资源,总结出了简洁代码,实属不易,也在此谢谢我那些参考的文章。#include<iostream>#include<stack>using namespace std;stack<char> s;void Tran(string n){ for(int i=0;i<n.size();i++){

2021-02-21 19:42:42 630

原创 括号匹配简单模板代码 &&3.4全网能查到的唯一实现代码(C/C++)

#include<iostream>#include<stack>using namespace std;stack<char> s;int Check(string a){ for(int i=0;i<a.size();i++){ if(a[i]==')'){ if(s.size()==0) return 0;//遇到)]}但是栈为空,则报错 if(s.top()=='(') s.po

2021-02-20 18:45:03 654

原创 3.3

3.3 设有一维数组stack[StackMaxSize],将其分配给两个栈S1和S2使用。试问如何分配数组空间,使得对任何一个栈,当且仅当数组空间全满时才不能插入?试给出两个栈的出栈入栈算法。#include<iostream>#define MaxSize 3using namespace std;struct Stack{ int top1,top2; int a[MaxSize];};int main(){ int n;//n为控制输入的栈

2021-02-20 16:18:40 246 1

原创 3.2

3.2 利用栈实现把十进制整数转换为二进制至十六进制之间的任一进制数并输出的功能/*我称这题为很经典*/#include<iostream>#include<stack>//#include<string>using namespace std;stack<char>s;//申请一个栈容器sstring Convert(int num,int n){ char a[16]={'0','1','2','3','4','5','6','7',

2021-02-20 00:25:33 64

原创 栈和队列章节知识

Catalan列计算可能的出栈序列个数(记住这个公式):特点:LIFO顺序栈:顺序存储结构链栈:链接存储方式//不带头结点的单链表中缀表达式要考虑算符优先法要实现中缀表达式求值,必须设置两个栈将中缀转换为后缀栈与递归:函数直接调用自己或者间接调用自己,该函数为递归函数,存在明确的递归出口高级语言中,对函数的调用,系统是通过栈来实现的。一个递归函数的执行过程类似多个函数嵌套调用,因此执行递归函数过程中需要一个递归工作栈。递归工作栈作用:将递归调用的实参和函数返回地址传递给下一层的递归函数;

2021-02-19 22:41:58 118

原创 2.11

2.11 已知一个无序单链表,表中结点data字段为正整数。试编写算法按递增次序打印表中结点的值用其他方法如果指针学的一般就理解起来就很迷,本题我采用的方法应该是最好理解的(个人观点,有意见可以评论交流,方便我改善代码)#include<iostream>#define MaxSize 100using namespace std;struct LinkList{ LinkList *next; int val;};int v[MaxSize];void Inc

2021-02-18 21:55:57 148

原创 2.10

2.10 已知一个单链表,试编写复制单链表的算法#include<iostream>using namespace std;struct SqList{ SqList *next; int val;};void Copy(SqList *L){ SqList *Ln=new SqList;//Ln为复制后的链表 SqList *rn=Ln;//还是采用尾插法 while(L){//有多少复制多少 SqList *p=new Sq

2021-02-18 21:22:56 214

原创 2.9

2.9 试编写算法,求循环链表中结点的个数/*试编写算法,求循环链表中结点的个数*/#include<iostream>using namespace std;struct SqList{ SqList *next; int val;};void Count(SqList *L){ SqList *t=L;//记录头结点 L=L->next; int s=0; while(L->next!=t->next){//从第

2021-02-18 21:01:02 184

原创 2.8

2.8 设表L用数组表示,且各元素值递增有序,将元素x插入到表L的适当位置,使得表中元素仍保持递增有序。此题分情况讨论#include<iostream>using namespace std;#define MaxSize 100using namespace std;struct SqList{ int a[MaxSize]; int len;};void Judge(SqList *L,int x){ int j=0; for(int i=

2021-02-17 20:43:46 248

原创 2.7

2.7 试编写算法,根据一个元素类型为整型的单链表生成两个单链表,使得第一个单链表中包含原单链表中所有元素值为奇数的结点,第二个单链表中包含原单链表中所有元素值为偶数的结点,原有单链表保持不变。#include<iostream>using namespace std;struct LinkList{ int val; LinkList *next;};LinkList *L1=new LinkList,*L2=new LinkList;LinkList *r1=L

2021-02-17 19:40:30 311

原创 2.6

2.6 试编写算法,将元素为整数的顺序表(a1,a2,…,an)重新排列为以a1为界的两部分:a1前面的值均比a1小,a1后面的值都比a1大,要求算法的时间复杂度为O(n)。#include<iostream>#define MaxSize 100using namespace std;struct SqList{ int a[MaxSize]; int len;};void ReOrder(SqList *L){ int j=L->len;//记录存

2021-02-17 18:04:06 505

原创 2.5

2.5 试编写算法,从顺序表中删除所有值重复的元素,是所有元素的值均不同。注意表中未必是排好序的,且每个值的第一次出现应当保留#include<iostream>#define MaxSize 100using namespace std;int s,t;bool v[MaxSize];struct SqList{ int a[MaxSize]; int len;};void Del(SqList *L){ for(int i=0;i<L->

2021-02-16 20:50:15 77

原创 2.4

2.4 试编写算法,从有序表中删除其值在给定值s和t(s<t)之间的所有元素由于题目没有额外要求,代码就没有判断是否为空的顺序表~#include<iostream>#define MaxSize 100using namespace std;int s,t;struct SqList{ int a[MaxSize]; int len;};void Del(SqList *L,int s,int t){ int i=0,j=0; while

2021-02-16 18:27:08 60

原创 2.3

2.3 试编写算法,从顺序表中删除具有给定值x的所有元素#include<iostream>#define MaxSize 100using namespace std;int n;struct SqList{ int a[MaxSize]; int len;};void Del(SqList *L,int x){ int i=0,j=0; while(i<L->len){ if(L->a[i]==x) i++;

2021-02-16 17:29:01 67

DS树编程题.docx

按年份分类整理了树的编程大题,方便总结归纳

2021-05-18

空空如也

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

TA关注的人

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