自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第六章 总线

机组考验复习

2022-06-13 21:30:15 1460 1

原创 第七章 输入/输出系统

输入输出系统考验复习

2022-06-06 13:55:57 2866 1

原创 M1mac安装eggjs步骤

m1mac安装eggjs

2022-03-16 09:48:07 281

原创 二叉树的遍历

1、先序+中序node* create(int preL, int preR, int inL, int inR){ if(preL > preR){ return NULL; } node* root = new node; root->data = pre[preL]; int k; for(k = inL; k <= inR; k++){ if(in[k] == pre[preL]){ break; } } int numLeft = k - in

2021-12-13 21:14:53 92

原创 最短路径问题——Dijkstra+DFS

算法描述:1、先在Dijkstra算法中记录下所有的最短路径(只考虑距离)2、之后在这些最短路径中选出一条第二标尺最优的路径。接下来实现第一步:记录所有最短路径。实现代码(考试可以直接照搬默写哈哈哈~):vector<int> pre[MAXV];void Dijkstra(int s){ fill(d, d+MAXV, INF); // 将数组d全部赋值为INF //新添加,将pre[i]全部初始化其本身 for(int i = 0; i < n; i++) pre[i

2021-12-10 14:59:49 615

原创 Dijkstra算法常见的出题方式

一般会考的不是仅仅只有一种最短路径的方式,比如有两种最短路径~如果有这种情况,那么题目就会给出一个第二标尺(第一标尺是距离)~要求再最短路径中选择一个第二标尺最优的路径~第二标尺常见的是以下三种出题方式或者是结合:1、给每条边增加一个边权(例如花费),要求在最短路径有多条的时候要求路径上的花费之和最小(如果边权有其他含义,那么边权也可以是最大)2、给每个点增加一个点权(例如每个城市搜集到的物资),然后在最短路径有多条的时候要求路径上的点权之和最大(如果点权是其他含义的话也可以是最小)3、直接问有多

2021-12-10 10:33:00 336

原创 图的最短路径问题——Dijkstra算法的介绍

简要介绍Dijkstra算法的模版

2021-12-10 10:01:40 422

原创 图的遍历——BFS与DFS

图的遍历是指对图中的顶点按照一定的顺序进行访问。图的遍历一般分为两种:DFS与BFS~一、深度优先搜索每次都是走到不能再走了才回到最近的一个交叉口。***连通分量:***无向图中,如果两个顶点之间可以相互到达,(可以是通过一定的路径间接到达),那么这两个顶点就称为强连通。如果图G(V,E)的任意两个顶点都连通,则称图G为连通图;否则就是非连通图,并且称其中的极大连通子图为连通分量。***强连通分量:***有向图中,如果两个顶点可以各自通过一条有向路径到达另一个顶点,就称为这两个顶点为强连通。如果图

2021-12-02 16:07:18 697

原创 图的基本概念以及图的存储

1、图的基本概念1、G(V, E):表示图G的顶点集合V, 边集E。2、图可以分为有向图和无向图。3、对于无向图,可以将其当成所有边都有正负两条边的有向边组成。(有时候会很有帮助呀~)4、顶点的度:与该顶点相连的边的个数顶点的出边条数称为顶点的出度顶点的入边条数称为顶点的入度5、将顶点和边的属性量化,那这个属性就叫做权值。顶点——点权边——边权。2、图的存储图的存储分为两种:邻接矩阵和邻接表。2.1 邻接矩阵假设图G(V,E)的顶点编号为0,1…N-1,那么可以令二维数组G[N][

2021-11-29 20:38:14 649

原创 堆与哈夫曼树

一、堆1、基本定义堆是一棵完全二叉树,树中每一个结点的值都不小于(不大于)其左右孩子的值。大顶堆:父亲结点的值大于等于孩子结点的值。小顶堆:父亲结点的值小于等于孩子结点的值。堆一般用于优先队列的实现,而优先队列一般使用大顶堆。2、堆的操作(1)堆的表示const int maxn = 100;int heap[maxn], n = 100;(2)向下调整堆在建立堆的过程中,总是将结点从上往下调整。调整方法:总是将当前结点V与它的左右孩子比较(如果有的话),假如孩子中存在比结点V大的

2021-11-29 19:57:47 709

原创 Python3 网络爬虫开发实战 读书笔记(六)

3.3 正则表达式正则表达式是处理字符串的强大工具,可以实现字符串的检索、替换、匹配验证。1、基本语法规则2、match()作用:向它传入要匹配的字符串以及正则表达式,就可以检测这个正则表达式是否匹配字符串。match()方法会尝试从字符串的起始位置匹配正则表达式,如果匹配,那么就返回匹配的结果,如果不匹配,就返回None。content = 'Hello 1234567 World This is a Regex Demo'result = re.match('^He.*?(\d+).*D

2021-11-16 17:19:28 77

原创 Python3 网络爬虫开发实战 读书笔记(五)

最近在忙综设的爬虫程序,没时间及时写博客,就当成是复习一下内容吧~上次讲到了使用urllib库,接下来来说说requests库吧。3.2.1 requests库的一些基本用法requests调用get方法,返回一个requests.models.Response对象之后可以调用方法来获取类型、状态码、网页内容、cookie等信息~r = requests.get('https://www.baidu.com/')print(type(r))print(r.status_code)print(

2021-11-16 16:15:44 705

原创 并查集~~

并查集的定义取自:Union、Find、Set功能:1、合并:合并两个集合2、查找:判断两个元素是否在一个集合内实现方式:数组int father[N];father[i]:表示i的父亲结点。father[i] = i由于一个集合中只能有一个根结点,且将其作为所属集合的标识。并查集的基本操作1、初始化for(int i = 1; i <= N; i++){ father[i] = i;}2、查找由于规定同一个集合中只能有一个根结点,所以查找操作就是对给定的结点寻找其根

2021-11-10 17:16:39 347

原创 平衡二叉树(AVL树)

平衡二叉树的定义:是BST,但是添加了平衡的要求:对于AVL树的任意结点来说,其左子树和右子树的高度差的绝对值不超过1。其中左子树和右子树的高度差称为该结点的平衡因子。AVL树是对BST的调整,让树的高度在每次插入元素之后仍然能保持O(logn)的级别,这样能让查询操作仍然是O(logn)的时间复杂度。结点定义:struct node{ int v, height; node *lchild, *rchild;};新建结点:node* newNode(int v){ node* Nod

2021-11-10 14:35:58 350

原创 二叉查找树(BST)

二叉查找树的定义二叉查找树:是一种特殊的二叉树,又叫排序二叉树,二叉排序树,二叉搜索树等等。具体定义如下:要么二叉查找树是一棵空树要么二叉查找树由根结点、左子树、右子树组成,其中左子树和右子树都是二叉查找树,且左子树上所有结点的数据域均小于根结点的数据域,右子树上所有结点的数据域均大于根结点的数据域~(左<根<右)二叉查找树的基本操作(查找、插入、建树、删除)搜索基本思路:1. 如果当前根结点为root,那么查找失败,返回~2. 如果要查找的值等于当前根结点的数据域,说明查

2021-11-01 21:11:10 394

原创 1053 Path of Equal Weight (30 分)

Given a non-empty tree with root R, and with weight Wi​ assigned to each tree node Ti​ . The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the path from R to any leaf node L.Now given any weighted tree, you ar

2021-11-01 20:09:14 75

原创 树的遍历~

树的静态写法树的结构体定义~struct node{ typename data; vector child; //指针域,存放所有子结点的下标~}Node[maxn];新建一个结点~int index = 0;int newNode(int v){ Node[index].data = v; Node[index].child.clear(); //清空子结点下标 return index++; //返回结点下标,并令index自增}树的先根遍历void preorder(

2021-11-01 17:35:25 70

原创 二叉树的静态实现

不使用指针来完成二叉树的所有操作~使用静态二叉链表来避免指针的使用静态二叉链表:左右指针域使用int型来进行替代,用来表示左右子树的根结点在数组中的下标。为此建立一个大小为结点上限的node型数组,所有动态生成的结点都直接使用数组中的结点,所有对指针的操作改为对数组下标的访问。Node数组定义~struct node{ typename data; int lchild; int rchild;}Node[maxn];结点的动态生成可以变成静态指定~int index = 0;int

2021-11-01 16:56:15 211

原创 二叉树的遍历

二叉树的遍历二叉树的遍历方法有四种:先序遍历、中序遍历、后序遍历、层序遍历,其中前三种一般都使用深度优先搜索(DFS)实现,层序遍历一般使用广度优先搜索(BFS)实现。无论这三种中的哪一种,左子树一定优于右子树遍历。先序遍历:根左右中序遍历:左根右后序遍历:左右根先序遍历(根左右)DFS代码~void preorder(node* root){ if(root == NULL) return; printf("%d\n",root->data); preorder(root-&gt

2021-10-31 22:02:20 65

原创 二叉树的存储结构与基本操作

二叉树的存储结构struct node{ typename data; node* lchild; node* rchild;};由于在二叉树创建之前,根结点不存在,所以刚开始根结点的地址一般设为NULL:node* root = NULL;如果需要创建新结点(往二叉树中插入结点时):// v是结点权值~node* newNode(int v){ node* Node = new node; Node->data = v; Node->lchild = Node-&

2021-10-31 20:59:44 193

原创 Python3 网络爬虫开发实战 读书笔记(四)

3.1.4 分析Robots协议利用urllib中的robotparser模块,我们可以实现网站Robots协议的分析。1.Robots协议也叫爬虫协议,机器人协议,用来告诉爬虫哪些可以抓取,哪些不能抓取。通常是一个robots.txt文件,放在网站的根目录~当爬虫访问一个站点时,会受限检查这个站点根目录下是否存在robots.txt文件,如果存在,搜索爬虫会根据其中定义的范围进行爬取,否则,会访问所有可以直接访问的界面。样例~User-agent:*Disallow:/Allow:/pub

2021-10-31 15:45:02 96

原创 Python3 网络爬虫开发实战 读书笔记(三)

3.1.2 处理异常urllib的error模块定义了request模块产生的异常,如果出现了问题,request模块便会抛出error模块中定义的异常。1. URLError继承与OSError,由request模块产生的异常都可以通过补货这个类来处理。它具有一个属性,reason——返回错误的原因from urllib import request,errortry: response = request.urlopen("https://cuiqingtai.com/index.h

2021-10-31 14:49:56 101

原创 对于静态链表解决排序问题的一般性方法

步骤1:定义静态链表struct Node{ int address; typename data; XXX; //节点的某个性质,不同的题目会有不同的设置。}node[100010];步骤二:静态链表初始化。一般来说需要对XXX性质进行初始化(一般来说就是小于所有能达到的数字或者false)for(int i = 0; i < maxn; i++){ node[i].XXX = -1;}步骤三:从头节点开始便利整条链表。注意:这一步是我们对XXX性质进行标记的时候,并且对

2021-10-30 16:45:55 197

原创 c++动态链表的基础操作

基本定义节点的定义:struct node{ typename data; node* next;};申请动态空间int* p = new int;node* p = new node;释放内存delete(p);链表的基本操作创建链表#include <cstdio>struct node{ int data; node* next;}node* create(int array[]){ node *p, *pre, *head; head = n

2021-10-30 15:16:17 454

原创 1032 Sharing (25 分) c++

1032 Sharing (25 分)To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if they share the same suffix. For example, loading and being are stored as sho

2021-10-30 14:42:31 74

原创 Python3 网络爬虫开发实战 读书笔记(二)

第三章 基本库的使用

2021-10-29 21:05:14 171

原创 Python3 网络爬虫开发实战 读书笔记(一)

2.1 HTTP基本原理2.1.1 URI 和URLURI:统一资源标志符URL:统一资源定位符URN:统一资源名称。只命名资源,不定位资源。URN用的少。基本所有URI都是URL。2.1.2 超文本网页是由超文本解析而成,网页源代码就是一系列HTML代码,里面包含了一系列的标签,浏览器解析标签,就形成了我们平时看到的网页,而网页的源代码也可以称为HTML。2.1.3 HTTP 和 HTTPSURL 开头会是http、https、ftp、sftp、smb等等,这些都是协议类型。在爬虫中,

2021-10-29 16:10:11 308

原创 1009 说反话 (20 分) c++解法

PAT1009 说反话 (20 分) c++ 解法:题目:1009 说反话 (20 分)给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Co

2021-10-28 17:18:20 229

空空如也

空空如也

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

TA关注的人

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