自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 shell脚本数据类型

1.字符串2.数组 (bash支持一维数组(不支持多维数组),并且没有限定数组的大小)运行结果如下:3.shell 参数传递以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……运行结果:会显示传入的参数tc_1,tc_2,tc_3...

2022-05-03 16:37:29 581

原创 shell脚本创建与使用

环境:ubuntu方法一:1.打开终端teminer,创建一个文件夹,名为workmkdir workcd work2.创建一个shell脚本touch test.shvim test.sh 编辑脚本,i进入编辑,Esc退出编辑,shift+:wq!保存并退出3.运行脚本./test.sh, 此时会在终端打印内容方法二:1.打开终端2.进入workcd work3.创建shell脚本文件touch min.sh4.编辑脚本 min.sh

2022-05-03 16:03:07 5717

翻译 modelsim 跑SV代码

初学者可能有困惑,编写一个简单的打印某句话的Verilog或者SV程序,并不涉及电路设计,纯粹为了学习语言基础,那么该怎么运行程序呢?利用ModelSim运行调试程序,就像学习大多数其它语言一样,开始总有第一个程序 Hello World!Hello.sv如下module Hello_World; // define variables initial begin $display("Hello World! SystemVerilog"); end...

2021-06-17 17:51:09 721

原创 10. C++基础

1.C++技术方向2.C程序调试工具gdb安装gdb比如有一个test.c程序要调试我们先编译 gcc -o test test.c再执行 ./test再gdb调试 gdb test ,则发现问题 no debugging symbols found退出gdb q如何解决呢?我们先编译 gcc -g -o test test.c再执行 ./test再gdb调试 gdb test ,则没有问题...

2021-03-19 15:59:08 113 1

原创 9.查找算法--二叉排序树

1.二叉排序树:插入和删除元素的效率不错,同时查找的效率也不错.中序遍历的结果为:46--67--70--99--104--105--109--111--1151.1二叉排序树的概念算法代码:/ SearchBST.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <stdlib.h>#include<string>#include<cstrin.

2021-03-17 20:36:34 377

原创 9.查找算法

查找算法及优化//顺序查找算法,a为要找的数组,n为要查找的数组长度,key为要查找的关键字int sq_search(int* a, int n, int key){ for (int i = 1; i < n; i++) { if (a[i] == key) { return i; } } return 0;}//优化顺序查找算法int sq_search_well(in...

2021-03-16 21:23:19 60

原创 9. 图--关键路径

前言:拓补排序是对关键路径做的一个铺垫1.关键路径1.1AOE(Activity On Edge Network)网概念1.2AOE网示意图比如5这个顶点,需要事件2和3都完成了,才能进行5这个事件1.3AOV网与AOE网比较回顾AOV网概念------>AOV网图1.4问题提出:如何找出AOV网的关键路径,即找出权值相加最大的那条路径?要思考的问题点:关键路径是如何建立在拓补序列上的? 想想以下关键词:etv(Earliest Time of V..

2021-03-16 17:28:46 145

原创 9.图--拓补排序

1.概念无环图:活动 2. 拓补序列:3.拓补排序:对有向图构造拓补序列的过程1.1.例子比如有下表,要学习“汇编语言”就需要先学习C1和C13课程。要将表画为AOV网图:拓补序列始终是向后指的,不能向前指(向前指是错误的)对AOV网图进行拓补排序的方法和步骤如下:数据结构表示:用邻接表表示AOV网图其中C1和C12入度都为0算法函数代码//边节点声明#define MAXVEX 9typedef s...

2021-03-16 10:56:29 242

原创 8.图--最短路径--弗洛伊德()算法-复杂度O(n^3)

前言:迪杰特斯拉算法与弗洛伊德算法时间复杂度对比案例:二维数组D是对图的描述,如果数据多了,比如有9个顶点,二维数组P用来存放前驱顶点,比如V2的前驱顶点是V1,V1的前驱顶点是V0,那么就可以知道V0——V2的路径就是V0--V1--V2案例1.先图初始化为二维数组D,0表示自己和自己连接:权值为0,无穷表示无连接线:权值为无穷大;初始化二维数组P 2.通过算法,变化为下面的D和P二维数组P数组的意思为:比如拿出一列V0—...

2021-03-15 19:43:10 550

原创 8.图--最短路径--迪杰斯特拉(Dijkstra)算法

1.最短路径--迪杰斯特拉(Dijkstra)1.1求最短路径 ----->答:算法代码typedef int Patharc[MAXVET]; //用于存储最短路径下标的数组typedef int ShortPathTable[MAXVET]; //用于存储到各点最短路径的权值和void ShortestPath_Dijkstar(MGraph G, int V0, Patharc* P, ShortPathTable* D){ int v, w, k,...

2021-03-15 16:42:41 84

原创 8.数据结构与算法--树-(带全最小生成树-克鲁斯卡尔算法)

带全最小生成树-克鲁斯卡尔算法边的名称按照权值来排序 ---变成了--->------>算法代码:struct Edges{ int begin; int end;};int Find(int* parent, int f){ while (parent[f] > 0) { f = parent[f]; } return f;}//Kruskal 算法生成最小生成树void MiniSpanTree_Kur...

2021-03-15 15:09:25 51

原创 8.数据结构与算法--树-(带全最小生成树-普里姆算法)

带全最小生成树-普里姆算法前言:要把下面的所有节点都链接起来,路径的数字为权重,计算下图中最小的成本,算法代码#define MAXVET 9#define INIFINITY 65535struct MGraph{ int numVertexes; int arc[MAXVET][MAXVET];};void MiniSpanTree_Prim(MGraph G){ int min, i, j, k; int adjvex[MAXVET...

2021-03-15 10:41:07 79

原创 8.数据结构与算法--图(图的遍历)

前言: 树的遍历(有4种) 前序遍历 中序遍历 后序遍历 层序遍历 图的遍历(2种) 深度优先遍历 广度优先遍历1.图的遍历--深度优先遍历(DFS: DepthFirstSearch):也叫深度优化搜索有下图:约定右手原则,在没有碰到重复顶点的情况下,分岔路口始终是向右手边走,每过一个顶点就做好一个记号。直到从A回退到A,证明所有的验证都已完毕了。先走一圈,把没有走顶点的都走一遍,如果没路可走,就往回退,确保每个顶点都走过了。深度优先遍历就是一个递归的过程.

2021-01-20 10:03:09 105

原创 8.数据结构与算法--图(存储结构)

前言:图无法以内存中的物理位置来表示元素之间的关系1.图的存储结构(5种) 邻接矩阵(无向图) 图由顶点和边组成,用两种结构分别来存储顶点和边顶点:不分主次,不分大小,可以用一维数组来存储边or弧:由于边或弧是顶点与顶点之间的关系,可以用二维数组(称为邻接矩阵)来存储那么可以设置两个数组,顶点一维数组vertex[4] = {V0, V1, V2, V3}, 边二维数组 arc[4][4] 为对称矩阵(0表示边不存在,1表示边存在) 如果两个顶点之间没有边,...

2021-01-19 17:19:15 228

原创 8.数据结构与算法--图(概念)

1.图1.1 定义及一些概念:对于线性表中的数据,我们称为元素。线性表中没有元素,称为空表。线性表中,相邻的数据元素之间有限性关系,树中称为节点。树中没有节点,称为空树。树结构中,相邻两层的节点有层次关系图中的元素称为顶点(Vertex)。图结构中强调顶点集合V要有穷非空。图结构中个,任意两个顶点之间都有可能有关系,顶点之间的关系用边来表示,边集可以是空的。1.2图的各种定义 无向边(顶点和顶点之间没有方向) 无序偶(Vi, Vj)用来表示图的无向边图的表示方式:

2021-01-18 21:06:08 792

原创 7.数据结构与算法--树(二叉树--赫夫曼树)

前言有损压缩对于一个图片而言:图片的每个像素各自都有一个颜色,如果把16个像素混成一个颜色,那么图片的大小就会变小,但是就不那么清晰了。这就是压缩编码无损压缩赫夫曼编码 (知名的压缩编码方案)例如:一个字节是8位,比如要发送'ABCD'这个4个字符,那么要用4个字节(32位)才能发出去。如果说发送方和接收方都约定用赫夫曼编码,那么可能只要发送8位就行可以了。1.赫夫曼树(是Huffman编码前身)1.1定义及介绍:由相同权值的一组叶子结点所构成的二叉树可能有不同的形态和不

2021-01-18 16:22:03 240

原创 7.数据结构与算法--树、森林及二叉树的相互转换

1.树、森林及二叉树的相互转换普通的树:在满足树的条件下可以是任意形状的,一个双亲节点可以拥有多个子节点,这样对树的处理明显要复杂!!1.1将普通的树转化为二叉树,再通过二叉树进行遍历操作如下:加线 (蓝色的为加线的部分)去线 层次调整后,变成下图的一个二叉树1.2将森林转化为二叉树,再通过二叉树进行遍历先将森林的每棵树各自 转换成二叉树:兄弟节点相连; 只保留双亲节点的第一个孩子的连线, 删除双亲节点的其他孩子的连线 将各二叉树的更节点视作兄弟总左至右连在一起,

2021-01-13 09:46:48 200

原创 7.数据结构与算法--树(线索二叉树)

1.线索二叉树发现普通二叉树有问题,会浪费空间,浪费了10个空间,用来存放空指针。但我们可以利用这10个空间存放该节点的前驱和后继节点的地址那么哪种遍历方式可以节省空指针^的空间呢?先试试前序遍历:遍历顺序为ABDHIECFG,根据前序的遍历顺序,我们用蓝色表示前驱,红色表示后继,如下图那么节点B 就无法被前驱或者后继索引到!所以前序遍历是不行的用中序遍历的方式:遍历顺序为 HDIBEAFCG,根据中序的遍历顺序,那么我们可以用蓝色表示前驱,红色表示后继,如下图。所有的节点.

2021-01-12 16:25:22 433

原创 7.数据结构与算法--树(二叉树)

1.二叉树1.1二叉树定义1.2二叉树定特点1.2二叉树定五种基本的形态1.3特殊二叉树 斜树:单边斜, 满二叉树 完全二叉树 完全二叉树的定义:完全二叉树的特点:2.二叉树的性质 在二叉树的第i层上至多有2^(i-1)个节点(i>=1) 深度为k的二叉树至多有 2^k-1 个节点 (k>=1) 对于任意一棵树T, 如果叶节点数量有n0个,度为2的节点数量有n2个,则n0...

2021-01-11 13:43:13 213

原创 7.数据结构与算法--树

7.树 之前的栈,队列都是一对一的关系 树是一种:一对多的关系 7.1树的定义错误的示范:7.2结点分类7.3结点的关系结点D的祖先是B,A 结点A是节点B的双亲 结点D,E,F是结点B的孩子、 结点D,E,F 互相称为兄弟7.4结点的层次7.5结点的其他概念...

2021-01-07 16:59:31 151 2

原创 6. 数据结构与算法--KMP算法

前言BF算法:例如有下面两个数组 i (主串)和数组 j(模式串),他们的第0位置存放字符串的长度,第1个位置开始存放数据。要比较字符串j 是否存在于字符串i中:BF算法如下。 先将i[1] 与 j[1]的字符进行比较,比较ASCII码的大小,如果大小相同,则i和j都同时比较下一个位置i[2] 和 j[2]的字符,依次类推。 在比较到i[5]和j[5]的时候, 发现i[5]不等于j[5],那么就让数组i取第2个位置 (即i[2])和 j[1]开始从头比较,发现i[2] 和 j[1].

2021-01-04 16:42:53 241

原创 5.数据结构--递归

1.递归

2021-01-03 11:33:57 84

原创 4.数据结构与算法--队列

1.队列1.1队列的定义1.2队列结构(分为顺序存储结构 和 链式存储结构)1.3队列的顺序存储结构入队(队尾入队,入队后,队尾指针指rear向下一个要入队的位置)出队(队头出队,出队后,队头指针front指向下一个要出队的位置)那么只要我们不限制队头一定要在下标为0的位置,那么出队列的时候,就不需要移动全体元素了!!!只要队头向后移动,后面的元素就不需要向前移动了!!见下图。但是上图同样会存在问题:当队尾已经指向最后一个元素时,还有元素要入队...

2021-01-02 10:36:06 164 1

原创 3.数据结构与算法--栈(链式存储结构)

栈顶就相当于单链表的表头,栈底就相当于表尾。代码结构

2020-12-31 18:06:08 174

原创 2.数据结构与算法--双向循环链表

1.双向链表 节点结构,prior域存放前驱节点的地址,next域存放后继节点的地址,data域存放数据 代码结构 双向链表结构1.1.双向链表的节点插入插入的顺序非常的重要:插入与单链表不同,选取后一个位置的节点作为Ps的next域指向P节点 S的prio域指向O节点 O节点的next域指向s节点 P的prio域指向s节点 节点个数加一1.1.双向链表的节点删除选取要删除的节点作为PO节点的next域指向Q; Q节点的prio.

2020-12-31 10:20:24 285

原创 2.数据结构与算法---链表(单链表,循环链表的额外应用)

1.两个单向循环链表相连接--利用尾结点的概念代码Node* Connect(Node *A, Node *B){ Node *p = A->next; //p用来临时存放表A的头结点 A->next = B->next->next; //把B的头结点与A的尾结点相连 free(B->next); //释放B的头结点 B->next = p; //把B的尾结点与A的头结点相连}2.判断单链表中是否有环 .

2020-12-28 16:26:35 125

原创 2数据结构与算法-单向循环链表--约瑟夫环

1.单向循环链表--约瑟夫环约瑟夫环背景死亡顺序如下// 循环链表-瑟比夫环.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。///*模拟瑟比夫环,输出淘汰的顺序*/#include <iostream>#include <stdlib.h>using namespace std;typedef int ElemType;class Node{public: Node* next; ElemType d

2020-12-28 13:58:33 90

原创 2.数据结构与算法--线性表(定义),循环链表

1.循环链表回顾单链表,单链表只能索引后继节点,不能索引前驱节点。而且单链表只能从头节点出发。1.1循环链表定义示意图:注意:循环链表不一定要有头结点 循环链表和单链表的主要差异就在于:空链表的判断上如果单链表为空链表,则可以判断 head->next == NULL; 如果循环链表为空链表,则可以判断 hea->next == head;​​​​​​​代码// 循环链表-单向.cpp : 此文件包含 "main" 函数。程序执行...

2020-12-27 12:55:08 88

原创 2.数据结构与算法--线性表(定义),链式存储结构(静态链表)

1.静态链表(用数组描述的链表称为静态链表,这种描述方法叫游标实现法)1.1静态链表存储结构静态链表的一些规则: 元素中有两个部分,一个是放数据,一个是游标,然后把这个结构声明为StaticLinkList的数组形式, 静态链表有两个元素是特殊的,第0个元素:下标为0,数据是不存放任何东西的,游标的值 是“第一个没有数据的元素的下标”。 另一个特殊的元素:最后一个元素,下标为999,数据是不存放任何东西的,游标的值 是第一个有数据的元素的下标“”。如下图所示 通..

2020-12-24 15:25:35 171

原创 2.数据结构与算法--线性表(定义),链式存储结构(单链表的创建-头插法-尾插法)

线性表的链式存储结构节点定义单链表示意图

2020-12-23 11:10:59 1214

原创 C++ 单向链表

链表:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。1.节点结构体Pointdata数据next指针,指向下一个2.链表类List*head //链表头指针length //链表长度3.单向链表的实现

2020-12-21 22:09:33 342

原创 2.数据结构与算法--线性表

1.线性表1.1定义:注意点:,且有且只有一个前驱和后继。数学定义:1.2抽象数据类型1.2.1线性表的抽象数据类型线性表创建的逻辑例题:求线性表A与线性表B的∪答:思路:循环遍历B中的每个元素,判断B中的当前元素是否存在于A中,若A中不存在,插入A中即可。...

2020-12-21 17:17:57 97

原创 1.数据结构与算法--算法的时间复杂度和空间复杂度

1.算法时间复杂度(反应程序运行所花费的时间多少)注:关键需要知道执行次数==时间,这也称为大O记法1.1推导大O阶方法例1如:例2如:例3:例四:例题五:1.2常见的时间复杂度时间复杂度的比较2.算法的空间复杂度(反应程序运行时所需要的内存大小)...

2020-12-21 09:52:40 39

原创 1.数据结构与算法-导论

1、四大逻辑结构1.1集合结构1.2线性结构1.3 树形结构1.4 图形结构2.数据元素的存储结构形式:分为顺序存储结构和链式存储结构2.1顺序存储结构 定义 注:数组结构中,数组的一个个元素都是在地址上紧挨着的。例如: a[0]——a[1]——a[2]——a[3]——a[4]2.2链式存储结构 定义 如下图所示链式存储结构,图中1-8个节点,在内存中的存放顺序都是随意的。每个节点也多用了一点空间,因为节点除了需要存放...

2020-12-18 14:50:46 100

原创 数据结构与算法--1.2栈--中缀表达式转换为后缀表达式

比如有中缀表达式:1+(2-3)*4+10/5--> 1+(2 3 -)*4 + 10 / 5--> 1+ (2 3 - 4 * )+ 10 / 5--> 1 2 3 - 4 * + 10 / 5--> 1 2 3 - 4 * + 10 5 / +转换为后缀表达式为:1 2 3 - 4 * + 10 5 / +1.转化思路从左到右遍历中缀表达式的每一个数字和符号,若是数字则直接输出,若是符号了,则判断与其栈顶符号的优先级,是右括号或者优先级低于栈顶符号,则

2020-12-17 20:17:23 162

原创 数据结构与算法--1.1栈(后缀表达式计算)

一般的后缀表达式:

2020-12-16 16:30:59 169

原创 3.数据结构与算法--栈(顺序存储结构)

栈的基本概念:栈是一种线性数据结构,只能从一端访问的线性群体(即:栈只能从一端插入数据,从同一端删除数据),是一种先进后出的数据结构。放入数据:入栈(压入栈),取出数据:出栈(弹出栈)。栈: 栈内存 栈顶标记栈的实现分为两种方案:一种是数组栈,一种是链式栈栈在后缀表达式中的问题:1.后缀表达式是《编译原理》的知识...

2020-12-16 15:57:59 890

原创 linux 下搜狗输入法安装

感谢博主:https://blog.csdn.net/u010648921/article/details/826242191.下载搜狗输入法的安装包下载地址为:http://pinyin.sogou.com/linux/,如下图,要选择与自己系统位数一致的安装包,我的系统是64位,所以我下载64位的安装包2.按键Ctr+Alt+T打开终端,输入以下命令切换到下载文件夹: cd ~/Downloads/...

2020-10-20 16:05:56 5582

原创 数组类模板

静态数组:具有固定元素个数的群体,其中的元素可以通过下标直接访问。缺点:数组大小在编译时就已经确定,在运行时无法修改大小。 动态数组(vector):动态数组由一系列位置连续的,任意数量相同类型的元素组成。优点:元素个数可在程序运行时改变。 //通过例子,了解如何封装动态数组类,注意看注释!!!array.h#ifndef ARRAY_H#define ARRAY_H#include <cassert>template <class T>cla..

2020-10-12 19:53:41 390

原创 函数模板,类模板

2020-10-10 13:24:48 111

STM32F030串口通信程序

STM32F030串口通信程序,STM32F030是一款性价比非常高的单片机,价格低廉,而且具有cortex-M0内核

2018-05-27

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

TA关注的人

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