- 博客(21)
- 收藏
- 关注
原创 数据链路层
第三章:数据链路层 数据链路层使用的信道主要有以下两种类型: (1) 点对点信道 (2) 广播信道:广播信道必须使用专用的共享信道协议来协调这些主机的数据发送 3.1 点对点信道的数据链路层 路由器在转发分组时使用的协议栈只有下面的三层。 链路:从一个结点到相邻结点的一段物理线路(就是物理线路) 数据链路:当在一条线路上传送数据的时候,除了一条物理线路外,还需要有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。(物理链路加上必要的通信协议) 数据链路层协议要
2021-05-01 21:38:16
429
原创 单链表操作
链式存储结构: 链式存储结构的存储结点包括数据域和指针域 头结点和头指针的区别: 头指针为指向第一个结点的指针,是链表的必要元素 头结点放在第一个元素的结点之前,不一定是链表的必须要素 单链表的读取 #define ERROR 0 #define OK 1 status GetElem(LinkList L, int i, ElemType *e) { int j; LinkList p; p = L->next; j = 1; while (p&&i < j)
2021-04-30 19:30:25
185
1
原创 多态及文件
多态 多态满足的条件: (1) 有继承关系 (2) 子类重写父类中的虚函数 多态使用: 父类指针或引用指向子类对象 因为父类中的虚函数的实现是毫无意义的,主要是调用子类重写的内容,所以可以将虚函数改写为纯虚函数。 纯虚函数语法:virtual 返回值类型 函数名(参数列表)=0; 当类中有了纯虚函数,这个类也称为抽象类 抽象类特点: 无法实例化对象 子类必须重写抽象类中的纯虚函数,否则也属于抽象类 在多态的应用中,如果子类中没有堆区数据,可以不写虚析构或纯虚析构,如果存在堆区数据,可以通过虚析构或纯虚析构来
2021-04-30 11:29:52
144
原创 物理层
第二章:物理层: 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体(传输媒体本身并不属于物理层的范围) 数据通信的基础知识: 一个通信系统可以大致分为三大类:源系统,传输系统,目的系统 消息,数据,信号的定义: 消息:话语,文字,图片等都是消息。(书) 数据:运送消息的实体。 信号:数据的电气或电磁表现。 1、消息、信息与信号数据的区别(百度) 消息(message)指的是信号要传递的内容,是本质。 信号(signal)是消息传递的形式,比如是电信号、光信号等,是载体。
2021-04-28 16:59:35
284
原创 顺序存储结构
线性表的特点: (1) 一对一的关系,(第一个元素没有前驱,最后一个无后继,其他的只有一个前驱和一个后继)不能一对多或多对一 (2) 同一个序列中元素的数据类型是相同的 线性表的基本操作:(应该包含顺序存储结构和链式存储结构) 理解:需要对其中的数据进行修改,用*,没有修改的没有用 InitList(*L):初始化线性表 EmptyList(L):判断线性表是否为空,为空返回真,否则返回假 ClearList(L):清空线性表 GetElem(L,i,*e):从线性表中获得第i个元素,返回给e Locate
2021-04-28 11:01:09
527
转载 2021-04-27
背包问题: https://blog.youkuaiyun.com/qq_37767455/article/details/99086678 一、题目描述 有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 二、总体思路 根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背包问题的最优解以及解组成,然后编写代码实现。 三、动态规划的原理 动态规划与分治法类似,都是把大问题拆分成小问题,
2021-04-27 10:38:53
102
原创 2021-04-25
动态规划题目汇总: https://www.cnblogs.com/Cucucudeblog/p/13151563.html
2021-04-25 21:14:25
102
原创 2021-04-24
第五天: 继承 继承的好处:减少重复的代码 继承的语法:class A:继承方式 B A:子类 B:父类 继承方式:公共继承 保护继承 私有继承 class A { public: int a; protected: int b; private: int c; } //公共继承 class B:public A { //可以访问 int a;//公共权限 int b;//保护权限 //不可访问 int c; } //保护继承 class B:
2021-04-24 21:19:17
96
原创 2021-04-23
第四天: 成员函数和普通函数的区别: 成员函数是面向对象的概念,所谓的成员函数,是指一个函数作为类的成员,公有成员、私有成员或者保护成员。 普通函数一般有两种传递方式,按类型传递和按值传递,也就是传指针和传返回值两种情况。成员函数一般是按类型传递,也即是传指针地址。 普通函数可以随便调用,并且无法继承和封装,成员函数根据类的不同,可以进行继承,根据公有私有的不同,调用方式也不同。 深层次的区别,普通函数作为C语言的概念,用的是stdlib,成员函数是用iostream,编译方法不同,至于谁占内存多,并不好
2021-04-23 21:53:16
346
2
原创 2021-04-22
第三天: 构造函数的调用规则 C++编译器默认提供的构造函数有: 默认构造函数(无参,函数体为空) 默认析构函数(无参,函数体为空) 默认拷贝构造函数,对属性进行值拷贝 调用规则: 如果用户定义了有参构造函数,C++不再提供默认无参构造,但是会提供默认拷贝构造 (如果用户定义了有参构造,又调用了无参构造,会出错) 如果用户定义了拷贝构造函数,C++不再提供其他构造函数 深浅拷贝问题 浅拷贝:简单的赋值拷贝操作 深拷贝:在堆区重新申请空间,进行拷贝操作 如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,防止
2021-04-22 19:12:45
108
原创 2021-04-21
第二天: C++面向对象的三大特性:封装,继承和多态。 封装: Class和struct的区别:class默认属性为private, struct默认权限为public。 封装可以把属性和行为放在不同的权限下,加以控制。 三种权限的区别: Public :类内可以访问,类外可以访问 protected :类内可以访问,类外不可以访问 private: 类内可以访问,类外不可以访问 构造函数: 语法:类名(){} (1) 构造函数没有返回值,也不写void (2) 函数名称与类名相同 (3) 构造函数可以有参
2021-04-21 21:05:14
92
原创 2021-04-20
第一天: C++内存分区: 分区的意义:给不同区分配不同的生命周期,使编程更加灵活。 代码区和全局区:运行前 栈区和堆区:运行后 代码区:存放代码 全局区:存放全局变量,静态变量,常量(const标注的常量,字符串常量) 栈区:编译器决定释放,局部变量存放在栈区,不要返回局部变量的地址,因为会改变。 堆区:由程序员决定释放,利用new关键字可以将变量存放在堆区,可以利用delete来释放堆区的数据。 引用: 注意事项: (1) 引用必须初始化。 (2) 引用初始化之后不能更改;eg:&a=b,a=c
2021-04-20 21:34:24
138
原创 最长公共子串和最长公共子序列
最长公共子串和最长公共子序列 参考:https://www.cnblogs.com/fengziwei/p/7827959.html
2021-04-19 20:51:52
114
原创 spfa算法
spfa算法: spfa算法是寻找最短路径的一种方法 例子: 问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。 输入格式 第一行两个整数n, m。 接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。 输出格式 共n-1行,第i行表示1号点到i+1号点的最短路。 样例输入 3 3 1 2 -1 2 3 -1 3 1 2 样例输出 -1 -2 代码: #include<bits/stdc++.
2021-04-17 21:00:20
173
原创 链式前向量
链式前向量: 链式前向量是一种存储边的信息的方法。 代码如下: #include<bits/stdc++.h> using namespace std; const int maxn=1001;//最大的边数 int n,m;//n个点m条边 struct node { int v,w,next;//终点,权值,上一条边的值 }edge[maxn]; int head[maxn];//以i为起点的第一条边的位置 int cnt;//第cnt条边 void init() { f
2021-04-17 10:45:10
283
原创 寻找质数
寻找质数 #include<bits/stdc++.h> using namespace std; int prime[2020]; int is_prime[2020]; int x=1; void dfs() { for(int i=2;i<=2019;i++) { if(!is_prime[i]) { prime[x++]=i; for(int j=2*i;j<=2019;j+=i) { is_prime[j]=1; } }
2021-04-16 22:02:24
176
原创 关于迷宫
迷宫: #include<bits/stdc++.h> using namespace std; char k[4]={'D','L','R','U'}; int dir[4][2]={{1,0},{0,-1},{0,1},{-1,0}}; int flag[30][50]={0}; char a[30][50]; struct node { int x; int y; string p; }; void dfs() { node start; start.x=0; start.y=
2021-04-16 22:01:20
110
原创 2020-08-29
今天所看的东西 1.代码 多普勒循环方法是通过将接收信号扩展成2倍,然后通过将改接收信号向左向右移位来实现对多普勒的频移,最后通过将频移后的接收信号与本地boc信号进行相关来判断哪个频移量是最合适的,最后相应的频移后的接收信号进行ifft就可以得到经过补偿后的接收信号。 2.多径笔记 通过rake接收机对多径信号进行合并,然后对信号进行无模糊捕获(只能对不存在多普勒频偏的信号进行捕获,感觉师姐嗯论文不对) 用HRC方法对多径信号进行抑制 先通过对接收信号进行多普勒补偿,然后对信号进行无模糊捕获 在每一个多普
2020-08-29 20:52:05
176
原创 为什么用Imshow(I)显示一片空白
Q:为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像? A:数据类型如果是double,imshow的处理范围是0-1 数据类型如果是uint8,imshow的处理范围是0-255 如果数据是0-255的,类型又是double,直接imshow会把大于1的都当成1,就是一片白了 解决方法 1 imshow(uint8(img)); 2 imshow(img, []);...
2020-04-25 20:58:15
985
1
原创 图像文件格式
图像文件格式 黑白:像素值0或1,0代表黑色,1代表白色 灰度图像:RGB值相同,用一个矩阵表示 彩色图像: 伪彩色:RGB值不同,只能有256种颜色 8位 真彩色:RGB各8位,一共24位 ...
2020-03-24 17:43:54
475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅