- 博客(71)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 如何从windows复制到linux上(亲测有效!)
这里写自定义目录标题第一种方法标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入第一种方法下载软件:sudo apt-get autoremove open-vm-toolssudo
2020-05-15 23:38:50
14453
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 磁盘调度算法(满满的干货)
磁道调度算法四种磁盘调度算法FCFS,SSTF,SCAN,CSCAN的基本思想在这就不多说了。下面直接附上代码实现过程:/*磁盘调度算法: 先来先服务:按进程的先后顺序进行调度 最短寻道:对磁道距离最短的磁道进行访问 扫描算法:沿着一个方向,由里向外扫描磁道,到最外层磁道,然后变换为由外向里扫描磁道 循环扫描算法:只能沿着一个方向,有里向外扫描磁道,到最外层磁道时转换为最里层...
2019-12-06 22:00:33
1296
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 可变分区内存动态分配模拟
可变分区内存动态分配模拟可变分区是指在进程装入内存时,把可用的内存空间“切出”一个连续的区域分配给进程,以适应进程大小的需要。整个内存分区的大小和分区的个数不是固定不变的,而是根据装入进程的大小动态划分。可变分区中的数据结构:空闲分区表和空闲分区链。空闲分区表为每个尚未分配出去的分区设置一个表项,每个表项包括分区的序号,分区大小,分区起始地址。空闲分区链在每个分区中设置用于控制分区分配的信...
2019-11-18 16:06:55
906
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SJF短作业进程优先调度算法
短作业(进程)优先调度算法短作业(进程)优先(Shortest Job First,SJF或Shortest Process Next,SPN)是指对短作业或短进程优先调度的算法。该算法可分别用于作业调度和进程调度。该算法的设计目标是改进FCFS算法,减少作业或进程的平均周转时间。SJF算法要求作业在开始执行之前预计作业的执行时间,对预计执行时间短的作业优先调入内存。SJF算法和FCFS...
2019-10-27 23:44:09
7231
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 操作系统:FCFS调度算法简单实现(c++)
计算机操作系统:FCFS调度算法简单实现由于本人(小白一个)一直以来一直想要写博客,加上最近学习操作系统,为了巩固自己的学习成果已经加深印象,现在决定开始写博客,可以说这是我的第一篇博客。今天主要描述的计算机操作系统的FCFS(先来先服务)的调度算法,可以用在进程调度和作业调度中。它的基本思想是按进程或作业到达的时间先后顺序进行调度。下面就详细讲下本小白实现此简单算法。欢迎使用M...
2019-10-15 22:24:32
7473
4
原创 Tcp连接的释放
Tcp连接的释放 TCP连接的释放过程通常称为 四次握手。 第一步:客户机打算关闭连接,向其TCP发送连接释放报文段,并停止发送数据,主动关闭TCP连接,该报文段的终止位FIN=1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1,FIN报文段即使不携带数据,也消耗一个序号。(TCP是全双工的,即可以想象为一条TCP连接上有两条数据通路,发送FIN的一端不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送数据)。 第二步:服务器收到连接释放报文段后即发送确认,
2021-11-22 12:27:47
6370
原创 Tcp连接的建立及SYN洪泛攻击
Tcp连接的建立及SYN洪泛攻击Tcp连接的建立(三次握手) 连接建立前,服务器进程处于LISTEN状态,等待客户的连接请求。 一: 客户端发送tcp连接请求报文段,Tcp首部SYN=1,seq=x。(Tcp规定,SYN报文段不能携带数据,但要消耗掉一个序号) 二: 服务器的Tcp收到连接请求报文段后,如果同意建立连接,则向客户端发回确认,并为该Tcp连接分配缓存和变量。确认报文段中,SYN=1,ACK=1,ack=x+1,seq=y(自己选择的一个初始序号y)。(确认报文段中
2021-11-21 16:59:10
2567
原创 编译原理-词法分析
实验一 词法分析一、词法分析的任务词法分析的核心任务是从左到右读入源程序的字符流,识别出一个个的单词。所识别的每一个单词,是下一个有意义的词法元素,如标识符或整数。在识别出下一单词,同时也验证了其词法正确性之后,词法分析程序就会产生一个单词记录,传递给后续阶段使用。词法分析程序所产生的单词记录通常由两部分信息组成:一个是单词符号(token),对应某个特定意义的词法单元,如标识符、整常数等;另一部分是单词的属性值(attribute)。程序设计语言中有各种类别的单词,常见的如:•保留字,也称关键
2021-05-16 22:32:23
2512
2
原创 Intent和IntentFilter
Intent概述 •Intent是Android的核心组件,利用消息实现应用程序间的交互机制,这种消息描述了应用中一次操作的动作、数据以及附加数据,系统通过该Intent的描述负责找到对应的组件,并将Intent传递给调用的组件,完成组件的调用。 •Intent由动作、数据、分类、类型、组件和扩展信息等内容组成,每个组成都由相应的属性进行表示,并提供设置和获取相应属性的方法。组成属性设置属性方法获取属性方法动作ActionsetAction()getAction(
2021-05-16 22:17:58
208
4
原创 Android界面开发
界面布局LinearLayout(线性布局)XML属性相关方法说 明Android:orientationSetOrientation(int)设置布局内组件的排列方式,可以设置为horizontal(水平排列)、vertical(垂直排列、默认值)两个值的其中之一Android:gravitysetGravity(int)设置布局内组件的对齐方式,可选值包括top、bottom、left、right、center_vertical、fill_vertical、ce
2021-05-16 22:17:20
703
2
原创 Activity详解
Activity概述 一个应用程序通常由多个彼此之间松耦合的Activity组成。通常,有一个Activity被指定为主Activity。当应用程序第一次启动的时候,该Activity会显示给用户。 每个Activity都可以启动其他Activity用于执行不同的动作(功能)。当一个新的Activity启动的时候,先前的那个Activity就会停止,但是系统会在堆栈中保存该Activity。 堆栈遵循后进先出的队列原则,因此,当用户使用完当前的Activity并按Back键时,该Activ
2021-05-16 22:15:55
978
2
原创 Android资源使用
在Android项目中,资源文件分别放在res和assets两个文件夹中res目录存放Android程序能通过R资源类直接访问的资源;assets目录存放Android程序不能直接访问的资源(原生文件),如MP3文件,必须通过AssetManager类以二进制流的形式读取。访问字符串资源:R.string.XXX 或 @string/XXX访问图片资源:R.drawable.XXX 或 @drawable/XXXble/XXX**如果觉得本文对你有帮助的话,不妨关注作者一波,小
2021-05-16 22:12:36
165
1
原创 Android程序设计基础
Android程序结构项目目录结构src目录source的简写,存放源文件的目录,即写有代码的以java为后缀的文件。res目录存放项目中的资源文件并将编译进应用程序中,包括图片、字符串、菜单、界面布局、样式等等。在向此目录添加的资源文件,都会被gen/R.java自动记录。gen目录取自Generated Java Files的前3个英文单词,存放ADT自动生成的java文件,例如R.java和BuildConfig.java文件。这个目录中的文件不建议作任何的改动,否则会出错
2021-05-16 22:08:58
595
6
原创 Android入门
Android入门 Android是基于Linux平台的开源手机操作系统,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。(这就是为什么我在我的说说页面上,用手机发动态,上面显示的Linux)Android体系结构应用程序层Android内有一系列的核心应用,包括短信程序、日历工具、网页浏览器等工具,以及基于Android平台的应用程序框架,所有的应用都是Java语言编写的。应用程序框架层开发者可以完全使用与那些内核应用程序相同的框架,
2021-05-16 22:06:55
886
20
原创 计算机图形学-二维图形生成算法
直线图形 绘制直线段一般需要进行栅格化(又叫光栅化)处理:将几何数据经过一系列变换后转换为像素呈现在显示设备上。 数值微分算法(DDA) 数值微分算法本质为用数值方法解微分方程,即通过同时对x和y个增加一个小增量,计算下一步的x,y的值。 1.DDA的推导公式 2.DDA画线程序设计void Line_DDA (CDC *pDC,int xs,int ys,int xe,int ye, COLORREF color){ int t; float x,y,k=(float)
2021-04-12 22:55:17
980
原创 C++网络编程
网络编程基本原理Socket通信函数soketint socket( _In_ int af, //AF_INET _In_ int type, //socket类型,SOCK_STREAM(Tcp),SOCK_DGRAM(UDP) _In_ int protocol //协议 );返回:非负描述字──成功, -1──出错参数family这个参数指定一个协议簇,也往往被称为协议域。系统存在许多可以的协议簇,常见有AF_
2021-04-12 22:52:44
1174
原创 数据结构--哈夫曼树
哈夫曼树 哈夫曼树的定义 在许多实际应用中,树中结点常常被赋予一个表示某种意义的数值,称为该结点的权。从树根结点到任意结点的路径长度(经过的边数)与该结点上权值的乘积,称为该结点的带权路径长度。树中所有结点的带权路径长度之和称为全树的带权路径长度,记为:WPL=∑i=1nWiLiWPL=\sum_{i=1}^n W_iL_iWPL=i=1∑nWiLi Wi 是第i个结点所带的权值,Li 是该结点到根结点的路径长度。 在含有n个带权叶子的二叉树中,其中带权路径长度(WPL)最小的二
2021-02-04 22:25:39
537
原创 数据结构--平衡二叉树
平衡二叉树 平衡二叉树(AVL) 定义 为避免树的高度增长过快,降低二叉树的性能,我们规定在插入和删除结点时,要保证任意结点的左右子树高度差的绝对值不超过1,将这样的二叉树称为平衡二叉树(AVL)。定义结点左子树与右子树的高度差为该结点的平衡因子,则平衡二叉树结点的平衡因子的值只可能是 -1, 0或 1。 平衡二叉树:一棵空树,或是具有以下性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度差的绝对值不超过1。 平衡二叉树的插入 基本思路:每当在二叉排序树中插入(删
2021-02-04 22:23:08
1451
1
原创 数据结构--二叉排序树
二叉排序树(BST) 定义 二叉排序树又称二叉查找树。二叉排序树或是一棵空树,或是一棵具有下列特性的非空二叉树: 1)若左子树非空,则左子树上所有结点关键字值均小于根结点的关键字值。 2)若右子树非空,则右子树上所有结点关键字值均大于根结点的关键字值。 3)左、右子树本身也分别是一棵二叉排序树 左子树结点值 < 根结点值 < 右子树结点值,对二叉排序树进行中序遍历,可以得到一个递增的有序序列。 查找 二叉排序树的查找是从根结点开始,沿某个分支逐层向下进行比较
2021-02-02 18:09:35
1593
原创 数据结构--树、森林
树、森林 树的存储结构 树的存储方式有很多种,既可采用顺序结构,又可采用链式存储结构,但无论采用何种存储方式,都要求能唯一的反映树中各结点之间的逻辑关系。下面是常见的存储结构: 双亲表示法 这种存储方式采用一组连续空间来存储每个结点,同时在每个结点中增设一个伪指针,指示其双亲结点在数组中的位置。 双亲表示法的存储结构描述:#define MAX_TREE_SIZE 100 //树中最多结点数typedef struct{ //树中的结点定义 ElemType
2021-01-31 20:53:38
1018
原创 数据结构--线索二叉树
线索二叉树 基本概念 遍历二叉树以一定规则将二叉树中的结点排列成一个线性序列,得到二叉树结点的各种遍历序列,其实质是对一个非线性结构进行线性化操作,使这个访问序列中的每个结点(第一个和最后一个除外)都有一个直接前驱和直接后继。 引入线索二叉树是为了加快查找结点前驱和后继的速度。在有n的结点的二叉树中,有n+1个空指针。 在二叉树线索化时,通常规定:若无左子树,令lchild指向其前驱结点;若无右子树,令rchild指向后继结点。还需要增加两个标志域表明当前指针域所指对象是指向左(右)子结点还
2021-01-31 20:52:36
445
原创 数据结构 - 二叉树遍历(递归,非递归)与构造
二叉树遍历和构造 二叉树的遍历 二叉树遍历其实很简单,三种遍历都是一样的,只不过顺序先后不一样罢了。 先序遍历 访问根结点,先序遍历左子树,先序遍历右子树void PreOrder(BitTree T){ if( T != nullptr){ visit(T); PreOrder(T->lchild); PreOrder(T->rchild); }} 中序遍历 中序遍历左子树,访问根结点,中序遍历右子树
2021-01-26 16:48:21
163
原创 数据结构-树和二叉树的基本概念
基本概念 树 定义 树是n个结点的有限集合,n = 0 时,称为空树。在任意空树中应满足:有且仅有一个特定的称为根的结点当 n > 1时,其余结点可分为 m 个互不相交的有限集合,其中每个集合本身又是一棵树,并且成为根节点的子树。树的定义是递归的,也是一种递归的数据结构。有两个特点:树的根节点没有前驱结点,除根节点外的所有结点有且只有一个前驱结点树中所有结点可以有零的或多个后继结点 树适合表示具有层次结构的数据。数中的某个结点最多只和上一层的一个结点有
2021-01-26 16:46:52
585
原创 数据结构-特殊矩阵的压缩存储
特殊矩阵的压缩存储 数组的存储结构 一个数组中的所有元素在内存中占用一段连续的存储空间。 对于多维数组,有两种映射方法:按行优先,按列优先。以二维数组为例:按行优先存储的基本思想是:先行后列,先存储行号较小的元素,行号相等先存储列号较小的元素。 矩阵的压缩存储 压缩存储:指为多个值相同的元素只分配一个存储空间,对零元素不分配存储空间。目的是为了节省存储空间。 特殊矩阵:指具有许多相同矩阵的元素或零元素,并且这些相同矩阵沿元素或零元素的分布有一定规律性的矩阵。常见的特殊矩阵有 对称矩阵
2021-01-24 16:40:29
1012
原创 DirectX3D-Win32基础
什么是窗口? 窗口很重要,windows操作系统与用户的交互其实主要靠这个窗口。通常的我们认为,就是我们打开windows应用程序时,弹出来的窗口,如下: 这种类型的窗口称为 应用程序窗口 或 主窗口。它通常具有带有标题栏,“最小化和**最大化”**按钮以及其他标准UI元素的框架。该框架称为窗口的非客户区,之所以这样称呼,是因为操作系统管理窗口的该部分。框架内的区域是客户区域。这是程序管理的窗口的一部分。但你可能想不到, 这也是一种窗口,没错。UI控件和应用程序窗口之间的主要区别在于,控件本
2021-01-22 16:45:17
471
原创 数据结构-栈和队列的应用(验证括号的正确性,表达式求值,层次遍历)
栈和队列的应用 栈的应用 验证括号的正确性 题目很简单就是输入一串字符,判断字符中的括号是否合法。直接上代码:#include <iostream>#include <string.h>using namespace std;typedef char ElemType;#define MAXSIZE 100typedef struct Stack{ ElemType data[MAXSIZE]; int top;}Stack;void Init
2021-01-22 16:14:10
220
原创 数据结构-队列(Queue)
队列(Queue) 队列的基本概念 定义 队列(Queue)。队列简称队。是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特性为先进后出(First In Last Out,FIFO),并且只允许在队尾进,队头出。 队头(Front):允许删除的一端,又称队首 队尾(Rear):允许插入的一端 空队列:不包含任何元素的空表 队列的基本操作 1)InitQueue(&Q):初始化队
2021-01-22 10:45:03
26508
2
原创 数据结构-栈(Stack)
栈(Stack) 栈的基本概念 定义 只允许在一端进行插入或删除操作的线性表。首先,栈是一种线性表,但限定这种线性表只能在某一段进行插入和删除操作。 栈顶(Top):线性表允许进行插入和删除的一端。 栈底(Bottom):固定的,不允许进行插入和删除的另一端。 空栈:不含任何元素。 如上图:a1为栈底元素,an为栈顶元素。由于栈只能在栈顶进行插入和删除操作,故进栈次序依次为a1,a2,… ,an 而出栈次序为an,…,a2,a1。栈的明显的操作特征为后进先出(Last In F
2021-01-20 17:16:30
1039
原创 数据结构-顺序表和链表的区别
区别 顺序表和链表的比较顺序表单链表存取方式可顺序存取,可随机存取只能从表头顺序存取逻辑结构和物理结构顺序存储,逻辑上相邻物理上也相邻链式存储,逻辑上相邻物理上不一定相邻,通过指针链接按值查找按值查找:O(n)(无序)折半查找 O(log2n)(有序)O(n)按序号查找O(1)O(n)插入O(n),平均需要移动n/2个元素只需修改相关结点删除O(n),平均需要移动n/2个元素只需修改相关结点空间分配可能会出现存储空间大
2021-01-20 17:14:56
233
原创 数据结构-双链表
双链表 单链表结点中只有一个只指向后继的指针,使得单链表只能从头结点开始一次顺序的先后遍历。要访问某个结点的前驱结点(插入删除操作时),只能从头开始遍历,访问后继节点的时间复杂度为O(1),访问前驱结点的时间复杂度为O(n)。 为了克服单链表的上述缺点,引入了双链表,双链表结点中有两个指针prior 和 next,分别指向其前驱结点和后继结点。 定义 双链表中结点类型描述:typedef struct DNode{ ElemType data; struct DNode
2021-01-20 16:49:27
1651
原创 数据结构-单链表
单链表 由于顺序表的插入、删除操作需要移动大量的元素,影响运行效率,由此引进了线性表的链式存储。链式存储线性表时,不需要使用地址连续的存储单元,对线性表的插入删除不需要移动元素,而只需要修改指针。单链表 定义 每个链表结点,除了存放元素自身的信息外,还需要存放一个指向后继的指针。typedef struct LNode{ ElemType data; struct LNode* next;}LNode, *LinkList; //LNode,LinkList 其实是一
2021-01-17 16:54:16
207
原创 数据结构-顺序表
顺序表 线性表的顺序存储又称顺序表。表中元素的逻辑顺序与其物理顺序相同。定义 静态定义:#define MAXSIZE 50; //定义线性表的最大长度typedef struct { ElemType data[MAXSIZE]; //顺序表的元素 int length; //顺序表的当前长度}Sqlist; //顺序表的类型定义 静态分配时,数据量小的话,会造成数组空间的浪费;而如果是数据量大的话,就会造成溢出,进而导致程序崩溃。所
2021-01-15 14:57:11
223
2
原创 值传递,引用传递,指针传递
值传递,引用传递,指针传递 值传递,引用传递,指针传递: 1、值传递:void f(int x) 传值传的是原来实参的一份拷贝,对形参进行操作不会改变实参的值。函数返回后,函数栈帧销毁,这份拷贝也会自动被回收。 2、引用传递:void f(int& x) 传引用什么也没创建,只是给实参起个别名,就像同学之间取外号一样,张三是一个同学,别人给他取名就二狗,那么张三,二狗就是同一个人。在这也是一样的,对引用进行操作就等于对实参的操作,对引用的操作会影响原来的实参。 3、指
2021-01-15 14:52:40
613
原创 数据结构-线性表
线性表定义: 废话不多说,开门见山。线性表是什么?线性表是具有相同数据类型的n个数据元素的有限序列。 若用L命名线性表,则一般表示为:L=(a1,a2,..,ai,ai+1,...,an)L = ( a1,a2,..,ai,ai+1,...,an)L=(a1,a2,..,ai,ai+1,...,an) a1 为表头元素,an为表尾元素;除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有仅有一个直接后继。 注意:线性表是一种逻辑结构,而后面讲的顺序表和链表是指存
2021-01-15 14:49:22
283
3
原创 数据结构-算法基本概念
算法基本概念5个特性: 1)有穷性 2)确定性 3)可行性 4)输入 5)输出评价算法的优劣: 1)时间复杂度 它定性描述算法的运行时间。一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)。 时间复杂度又分为:最坏时间复杂度,平均时间复杂度,最好时间复杂度。 最坏时间复杂度是指最坏情况下,算法的时间复杂度。 平均时间复杂度是指所有输入实力在等概率出现的情况
2021-01-14 12:17:30
252
原创 数据结构-基本概念
数据结构基本概念基本概念: 1、数据 数据就是信息的载体,其实通俗来讲就是计算机输入,处理和输出的东西。 2、数据元素 数据元素就是数据的基本单位,数据项就是构成数据元素的不可分割的最小单位。举个例子,学生记录由学号,姓名和性别构成,那么学生记录就是一个数据元素,学号,姓名,性别就是数据项。 3、数据对象 数据对象就是有相同性质的数据元素的集合。 4、数据类型 数据类型是一个值的集合和定义在此集合上的一组操作的总称。 1)原子类型。其值不可再分的数据类型。像int,fl
2021-01-14 11:34:50
203
1
原创 C++ 生成 -10 到 30 的随机数(可扩展)
C++ 生成 -10 到 30 的随机数int main() { vector<int> nums; srand((unsigned)time(NULL)); for (int i = 0; i < 20; i++) { nums.push_back(rand()%(41)-10); //生成 -10 到 30 的随机数 } for (int i : nums) { cout << i << " "; } cout << end
2020-12-05 12:23:24
1517
原创 UE4 C++ 设置模型与材质的默认值
UE4 C++ 设置模型与材质的默认值MyPawn.h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Pawn.h"#include "Components/StaticMeshComponent.h"#include "Camera/CameraComponent
2020-11-05 13:06:23
1172
原创 UE4C++ SpringArm组件的创建
UE4C++ SpringArm组件的创建MyPawn.h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Pawn.h"#include "Components/StaticMeshComponent.h"#include "Camera/CameraCompone
2020-11-05 12:44:57
1555
原创 UE4C++ APawn类,添加轴映射,使能够控制APawn移动
APawn类,添加轴映射,使能够控制APawn移动MyPawn.h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Pawn.h"#include "Components/StaticMeshComponent.h"#include "Camera/CameraCom
2020-11-04 13:33:30
683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人