保研机试——4数据结构(栈、队列、链表、哈夫曼树、二叉树、二叉排序树、前缀树、搜索(DFS/BFS/A*)、图论算法(并查集、最小生成树、最短路径、拓扑))

2023-05-16

cank

在写一道题时,首先想到的是怎么取存储输入输出的数据,使我们操作更加方便,处理的更快,所以我们来认识数据结构,认识数据存储:
单值:变量
连续:1维数组(行)、2维数组(面)、3维数组(体)
离散:链表(插入删除多的1维数组)
行长度不同的二维表:vector<string>vector<vector>

不要拘泥于现有认知的数据结构,可以通过STL的组合灵活构造。

  • 1 栈stack
  • 2 队列queue
  • 3 链表
  • 4 二叉树
  • 5 哈夫曼树
  • 6 二叉排序树
  • 7 前缀树
  • 8 搜索(DFS/BFS/A*)
  • 8.1 暴力枚举
    • 8.2 DFS深度优先搜索
  • 9 图论算法(并查集、最小生成树、最短路径、拓扑)

1 栈stack

只能在栈顶一端进行入栈和弹栈操作,它满足先进后出的特性 只能在栈顶一端进行入栈和弹栈操作,它满足先进后出的特性 只能在栈顶一端进行入栈和弹栈操作,它满足先进后出的特性
STL栈stack
#include <stack>中可以用stack<int> st来定义一个全局栈来储存整数的空的stack。当然stack可以存任何类型的数据,比如stack<string> st等等。
数组模拟栈
只能使用C语言机试的同学直接用数组模拟栈即可。

// 初始化栈
int stk[N], top=-1;
// 插入元素
stk[++top] = x;
// 弹出元素
c = stk[top--];
// 取栈顶值
stk[top];
// 判断栈是否为空
if (top == -1)

常见应用方式
1、计算表达式的值
2、带优先级的括号匹配问题

2 队列queue

只能在队尾入队和队头出队操作,它满足先进先出的特性 只能在队尾入队和队头出队操作,它满足先进先出的特性 只能在队尾入队和队头出队操作,它满足先进先出的特性
STL队列queue
#include <queue>中可以用queue<int> q来定义一个全局队列来储存整数的空的queue。当然queue可以存任何类型的数据,比如queue<string> q等等。

q.push(something);//入栈
q.pop();//出栈
q.top();//取栈顶元素值
q.empty();//判断栈空

STL优先队列priority_queue:自动排序(可重复)

 #include <priority_queue>
 //升序队列:小顶堆
priority_queue <int,vector<int>,greater<int> > q;
//降序队列:大顶堆
priority_queue <int,vector<int>,less<int> >q;
/*
和队列基本操作相同:
top 访问队头元素
empty 队列是否为空
size 返回队列内元素个数
push 插入元素到队尾 (并排序)
emplace 原地构造一个元素并插入队列
pop 弹出队头元素
swap 交换内容
*/

//使用基本数据类型时,只需要传入数据类型,默认是大顶堆。
//对于基础类型 默认是大顶堆
priority_queue<int> a; //等同于 priority_queue<int, vector<int>, less<int> > a;

//用自定义类型,需重载自定义类型的<运算符
struct tmp1 {
    int x;
    //构造函数
    tmp1(int a) {x = a;}
    //运算符重载<
    bool operator<(const tmp1& a) const {
        return x < a.x; //大顶堆
    }
};
priority_queue<tmp1> d;

3 链表

对于使用OJ测评的院校的同学来说,这类问题可以用数组来实现,没有必要用链表去实现,写起来慢不说,还容易出错,所以我们一般都直接用数组来实现,反正最后OJ能AC就行。

但是对于非OJ测评的院校来说,链表类问题可以说是必考的题型。

一般来说有以下三种常见考点
1、约瑟夫环
解析:n个节点的循环链表建立之后,按照题意(间隔m个节点)删除节点,求删除顺序。三种解法:数组循环链表递归

//循环链表实现
#include<bits/stdc++.h>
using namespace std;
#define rep(i,s,e) for(int i=s;i<e;i++)
#define per(i,s,e) for(int i=s;i>e;i--)

struct node{
	int num;
	node* next=nullptr;
};

//创建循环链表  
struct node* create(int n) {  
    struct node *head, *now, *pre;  
    rep(i,1,n+1) {
        now = new node;  
        if (i == 1) {  
            head = now;  //头节点
            pre = now;  //now前一个
        }  
        now->num = i;  
        now->next = head;  
        pre->next = now;  
        pre = now;  
    }  
    return head;  
}; 

void print(node*root){
    int flag=1;
    node *current=root,*pre;
    while(current->next!=current){
        if(flag){
            flag=0;
            pre=current->next;//当前表演的前一个
            current=pre->next;//推进两下
            pre->next=current->next;
        }
        else{
            pre=current->next->next;//当前表演的前一个
            current=pre->next;//推进三下
            pre->next=current->next;
        }
        cout<<current->num;
    }
}

int main(){
    int n;
	cin>>n;
    node *root=create(n);
    print(root);
	return 0;
}

在这里插入图片描述

//数组实现
#include<bits/stdc++.h>
using namespace std;
#define rep(i,s,e) for(int i=s;i<e;i++)
#define per(i,s,e) for(int i=s;i>e;i--)
int a[101]={0};//开数组的大小根据题目上限决定,初始全0
//a[i]=0表示i没有出局,a[i]=1表示i出局,a[0]不用

int main(){
    int n,m;
    int cnt=0,i=0,k=0;//cnt记录当前出局的人数,i用于控制循环遍历n个人,k用于记录是否循环m个人
    cin>>n>>m;//n表示约瑟夫环总人数,m表示每隔m个人就出局
    while(cnt!=n){
        i++;
        if(i>n) i=1;//i超过n时,返回1进行循环
        if(a[i]==0){
            k++;
            if(k==m){
                a[i]=1;//i号出局
                cnt++;//出局人数++
                cout<<i<<" ";
                k=0;//清空k,重新从0开始报数
            }
        }
    }
	return 0;
}

在这里插入图片描述

//递归实现

2、有序链表合并
解析:这个和两个有序数组合并为一个有序数组原理一样

3、链表排序
解析:使用冒泡排序进行链表排序,因为冒泡排序是相邻两个元素进行比较交换,适合链表。

4 二叉树

  • 的本质就是多个子节点的链表,根节点指针=表头指针,子节点用vector<node*> childern保存。
  • 二叉树就是限定每个节点的子节点不超过2个,子节点用node* left; noed* right保,左子树和右子树是有顺序的,次序不能任意颠倒。

二叉树的建立
在这里插入图片描述

二叉树的遍历(递归实现)

  • 前序遍历(根左右):从二叉树的根结点出发,当第一次到达结点时就输出结点数据,按照先向左再向右的方向访问。对于上图,遍历顺序如下:ABDHIEJCFG
  • 中序遍历(左根右):从二叉树的根结点出发,当第二次到达结点时就输出结点数据,按照先向左再向右的方向访问。对于上图,遍历顺序如下:HDIBJEAFCG
  • 后序遍历(左右根):从二叉树的根结点出发,当第三次到达结点时就输出结点数据,按照先向左再向右的方向访问。对于上图,遍历顺序如下:HIDJEBFGCA
  • 层序遍历:按照树的层次自上而下的遍历二叉树。对于上图,遍历顺序如下:ABCDEFGHIJ

判断二叉树对称:先建树,先序遍历的“根左右” = 先序遍历的“根右左”,则二叉树对称。
在这里插入图片描述

遍历常考考点(建树!!!)
对于二叉树的遍历有一类典型题型。

            通过中序遍历和先序遍历 可以 确定一个树
            通过中序遍历和后续遍历 可以 确定一个树
            通过先序遍历和后序遍历 不可以 确定一个树。

1)前序序列+中序序列,构建二叉树。

  • 前序遍历是ABDECFG
  • 中序遍历是DBEACGF
    在这里插入图片描述
    这样我们就构造出第一个点。以preOrder[1…3]作为新的前序inOrder[0…2]作为新的中序,就可以构造出A的左子树(右也同理)。
    在这里插入图片描述
    在这里插入图片描述
#include<bits/stdc++.h>
using namespace std;
#define rep(i,s,e) for(int i=s;i<e;i++)
#define per(i,s,e) for(int i=s;i>e;i--)

typedef struct node{
    node *lchild=NULL, *rchild=NULL;
    char data;
}node,*Tree;
//typedef struct node{}Node,*TreeNode; 可以实现给结构体node起别名Node,也可以定义结构体node的指针类型TreeNode

void createTree(Tree&T,string pre,string in){
    T=new node;//每次构建一个子树时,先创建一个空结点
    T->lchild=NULL;T->rchild=NULL;
    
    T->data=pre[0];//前序pre序列的第一个字符是树根的字符
    if(pre.size()==1) return;//如果pre序列只有一个字符的话,则直接返回(即不再继续构造根节点的子树)

    int mid=in.find(pre[0]);//找到根节点字符在中序in序列中的位置,后面用于构建左右子树
    if(mid!=0)//如果根节点在中序序列首,无法构造左子树
        createTree(T->lchild,pre.substr(1,mid+1),in.substr(0,mid));//取序列子串,递归构建
    if(mid!=in.size()-1)//如果根节点在中序序列尾,无法构造右子树
        createTree(T->rchild,pre.substr(mid+1),in.substr(mid+1));//取序列子串,递归构建
}

void postOrder(node* p) {//后序遍历
    if(p!=NULL){ postOrder(p->lchild); postOrder(p->rchild); cout<<p->data; }
}

main() {
    string pre,in; cin>>pre>>in;
    node * root = new node;
    createTree(root,pre,in);
    postOrder(root);
}

2)后序序列+中序序列,构建二叉树。
后序遍历中最后访问的为根结点,因此可以按照上述同样的方法,找到根结点后分成两棵子树,进而继续找到子树的根结点,一步步确定二叉树的形态。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码还有错误,带改

#include<bits/stdc++.h>
using namespace std;
#define rep(i,s,e) for(int i=s;i<e;i++)
#define per(i,s,e) for(int i=s;i>e;i--)

typedef struct node{
    node *lchild=NULL, *rchild=NULL;
    char data;
}node,*Tree;
//typedef struct node{}Node,*TreeNode; 可以实现给结构体node起别名Node,也可以定义结构体node的指针类型TreeNode

void in_post_createTree(Tree&T,string in,string post){
    T=new node;//每次构建一个子树时,先创建一个空结点
    T->lchild=NULL;T->rchild=NULL;
    
    T->data=post[post.size()-1];//后序pre序列的最后一个字符是树根的字符
    if(post.size()==1) return;//如果pre序列只有一个字符的话,则直接返回(即不再继续构造根节点的子树)

    int mid=in.find(T->data);//找到根节点字符在中序in序列中的位置,后面用于构建左右子树
    if(mid!=0)//如果根节点在中序序列首,无法构造左子树
        in_post_createTree(T->lchild,in.substr(0,mid),post.substr(0,mid));//取序列子串,递归构建
    if(mid!=in.size()-1)//如果根节点在中序序列尾,无法构造右子树
        in_post_createTree(T->rchild,in.substr(mid+1),post.substr(mid+1,post.size()-1-mid));//取序列子串,递归构建
}

void preOrder(node* p) {
    if(p!=NULL){ cout<<p->data; preOrder(p->lchild); preOrder(p->rchild); }
}

main() {
    string in,post; cin>>in>>post;
    node * root = new node;
    in_post_createTree(root,in,post);
    preOrder(root);
}

例题,二叉树的建立和遍历
题目描述:
建立以二叉链作为存储结构的二叉树,实现 1)先序遍历; 2)中序遍历; 3)后序遍历; 4)层序遍历; 5)编程计算二叉树的叶子结点个数。
输入描述:
按照先序遍历序列输入二叉树中数据元素的值,没有的输入0表示。
输出描述:
第一行输出先序遍历序列 第二行输出中序遍历序列 第三行输出后序遍历序列 第四行输出叶子结点的个数。
输入样例:
A B C 0 0 0 D E 0 F 0 0 G 0 0
输出样例:
A B C D E F G
C B A E F D G
C B F E G D A
3

#include<bits/stdc++.h>
using namespace std;
#define rep(i,s,e) for(int i=s;i<e;i++)
#define per(i,s,e) for(int i=s;i>e;i--)
typedef struct node{ //注意typedef不能省略,以后定义node时就不需要struct了
    char data;  
    struct node *lchild,*rchild;  
}*BitTree;  
string line;
int i;
char c;
//先序遍历的方式创建二叉树  
void CreatBitTree(BitTree &T) { 
    if(i==line.size()) return;
    c=line[i++]; 
    if (c == '0') T = NULL;  
    else {  
        T = new node;  
        T->data = c;  
        T->lchild=NULL;//注意每次创建新节点时,子节点置空
        T->rchild=NULL;
        CreatBitTree(T->lchild);  
        CreatBitTree(T->rchild);  
    }  
}  
//将二叉树按照先序输出  
void PreOrderTraverse(BitTree T) {  
    if (T != NULL) {  
        cout << T->data << ' ';  
        PreOrderTraverse(T->lchild);  
        PreOrderTraverse(T->rchild);  
    }  
}  
//将二叉树按照中序输出  
void InOrderTraverse(BitTree T) {  
    if (T != NULL) {  
        InOrderTraverse(T->lchild);  
        cout << T->data << ' ';  
        InOrderTraverse(T->rchild);  
    }  
}  
//将二叉树按照后序输出  
void PostOrderTraverse(BitTree T) {  
    if (T != NULL) {  
        PostOrderTraverse(T->lchild);  
        PostOrderTraverse(T->rchild);  
        cout << T->data << ' ';  
    }  
}  
//二叉树的叶子节点个数  
int Leaf(BitTree T) {  
    if (T == NULL) return 0;  
    if (T->lchild == NULL && T->rchild == NULL) return 1;  
    return Leaf(T->lchild) + Leaf(T->rchild);  
}  
//二叉树的深度  
int Deepth(BitTree T) {  
    if (T == NULL) return 0;  
    int x = Deepth(T->lchild);  
    int y = Deepth(T->rchild);  
    return max(x,y) + 1;  
}  
int main(){  
	while(cin>>line){
        i=0;
        CreatBitTree(T);  
        InOrderTraverse(T); cout << endl; 
        InOrderTraverse(T); cout << endl;  
	    PostOrderTraverse(T); cout << endl;  
	    cout << Leaf(T) << endl;   
    }    
    return 0;  
}  

5 哈夫曼树

6 二叉排序树

7 前缀树

8 搜索(DFS/BFS/A*)

8.1 暴力枚举

枚举算法是在分析问题时,逐个列举出所有可能情况,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃,最后得出一个结论。主要利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此枚举法是通过牺牲时间来换区答案的全面性。

举例说明

有一个整数ABCD,一定是四位数,A不能为0,其中ABCD*4=DCBA。 其中A、B、C、D都是一个数字,求ABCD是多少?

如何解决这个问题呢?

我们可以直接枚举ABCD四个数的值

8.2 DFS深度优先搜索

在这里插入图片描述

9 图论算法(并查集、最小生成树、最短路径、拓扑)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保研机试——4数据结构(栈、队列、链表、哈夫曼树、二叉树、二叉排序树、前缀树、搜索(DFS/BFS/A*)、图论算法(并查集、最小生成树、最短路径、拓扑)) 的相关文章

  • (一)华为弹性云服务器购买与使用

    登录华为云官网 选择立即购买 选择配置并购买 根据需要进行购买 华北 北京四按需计费随机分配GPU加速型g6 4xlarge 4Ubuntu 18 04 server 64bit for GPU 40GB xff08 需要GPU的选有GPU
  • C++继承和多态核心重点知识刨析,一文必拿下

    一 继承 继承的本质是为了复用 xff0c 复用基类的数据成员和方法 封装的本质是为了对外仅仅暴露必要的使用接口 内部的具体实现细节和部分的核心接口对外是不可见的 隐藏细节 仅对外开放必要功能性接口 正是由于封装隐藏所需 所以产生了公有属性
  • DockerFile文件详细解析

    DockerFile文件详细解析 所有文章不设限 xff0c 我们相遇偶然 xff0c 相散坦然 xff0c 互不打扰 xff0c 各自安好 xff0c 向阳而生 致敬尚硅谷周阳老师 xff0c 此处内容迁移学习来自于阳哥 xff01 Do
  • Cropper的一个demo

    1 摸鱼大法第一招 Cropper Cropper 就是基于canvas做的小插件 xff0c 下面做的是一个图片裁剪 xff0c 各位看官看看就行 xff0c 有什么意见多提 A code block import Cropper fro
  • 互斥锁和信号量

    一 同步互斥概述 在多任务操作系统中 xff0c 同时运行的多个任务可能都需要访问 使用同一种资源 多个任务之间有依赖关系 xff0c 某个任务的运行依赖于另一个任务 同步和互斥就是用于解决这两个问题的 互斥 一个公共资源同一时刻只能被一个
  • shell编程、makefile学习笔记

    windows r n linux n 1 shell介绍 1 1 shell是操作系统的终端命令行 1 shell可以理解为软件系统提供给用户操作的命令行界面 xff0c 可以说它是人机交互的一种方式 2 我们可以使用shell和操作系统
  • linux系统--find命令详解以及定时查看系统文件是否被修改

    一 概述 xff1a 因为Linux下面一切皆文件 xff0c 经常需要搜索某些文件来编写 xff0c 所以对于linux来说find是一条很重要的命令 linux下面的find指令用于在目录结构中搜索文件 xff0c 并执行指定的操作 它
  • 0429 嵌入式学习笔记 (32)STL标准模板库/类的方法

    文章目录 STL 标准模板库 类的方法 STL 标准模板库 从逻辑层面看 xff0c 在STL中体现了泛型化程序设计思想 从实现层次看 xff0c 整个STL是以一种类型参数化的方式实现的 STL六大组件 1 容器 2 迭代器 3 算法 4
  • Mapreduce(Java程序编写)

    Mapreduce xff1a 分布式计算框架 开发人员要做的事情 xff1a 实现Map和Reduce函数 一般只调用HDFS的话 xff0c 不实际Yarn的工作 xff0c 调用Mapreduce时才会调用yarn 三台设备Mapre
  • 蓝桥杯嵌入式(STM32G431RBT6)入门第二天——建立自己的初始化文件|CSDN创作打卡

    接前一天 xff0c 将所有工程拷贝到建立的另外一个文件夹LED中 xff0c 在Inc文件夹中建立led h文件 xff0c 在Src文件夹中建立led c 用keil打开工程 xff0c 点击下图中的图标 xff0c 新建一个USER分
  • 如何把img格式转换成vmdk格式

    下载qemu xff0c 这里是下载好的 xff0c 也可以自行下载 链接 xff1a https pan baidu com s 1UEJupO5YyFgX8MnpywikeA 提取码 xff1a ttil 安装好后 xff0c 进入qe
  • 瀑布流插件vue-masonry

    前言 之前其实有分享过一篇纯CSS实现瀑布流的方法 https oliver blog csdn net article details 126450691 xff0c 但纯CSS实现的方案都不是比较好的方案 xff0c 总归有一些各式各样
  • 集合学习之Iterator接口

    1 Iterator接口概述 Iterator接口表示对集合进行迭代的迭代器 Iterator接口为集合而生 xff0c 专门实现集合的遍历 此接口主要有如下两个方法 xff1a hasNext 判断是否存在下一个可访问的元素 xff0c
  • 自协商技术

    摘要 xff1a 本文介绍了自协商的基本原理和工作模式 xff0c 以及自协商相关细节介绍 缩略语 xff1a FLP xff1a 快速连接脉冲 NLP xff1a 普通连接脉冲 CSMA CD xff1a 载波监听多路访问 冲突检测 PC
  • Armbian 笔记五_如何在 Armbian 上安装 xfce4 桌面

    目录 使用 armbian software 选择 Desktop 安装 xfce4 桌面 准备工作 正常开机 必须存在着一个普通用户 连接有线网络 下载安装设置 armbian software 201 是 Desktop 输入普通用户
  • 数据结构|队列

    队列 知识框图考点分析1 什么样的链表适合作为链队2 判空判满 常考小题 知识框图 队列相关知识点较为简单易懂 xff0c 不再叙述 xff08 注意 FIFO 特点 xff0c 框架遗漏 xff09 本文主要针对考点中的2 3点进行知识总
  • ST-LINK v2下载器简单使用

    ST LINK v2下载器简单使用过程 文章目录 ST LINK v2下载器简单使用过程前言1 驱动安装1 1 驱动安装常规步骤1 2 驱动失败解决方法 2 代码下载 amp 调试2 1 代码下载2 1 1 JTAG接法 xff1a 2 1
  • linux系统--help/man/info/whatis命令详解

    1 man命令的用法 man gt gt manual man是手册的缩写 man man 查看man命令的帮助 man passwd 查看passwd命令的帮助 man的级别 1 系统命令 2 系统接口 3 函数库 4 特殊文件 xff0
  • ESP8266 WIFI 模块和手机通信

    ESP8266 WIFI 模块通过TTL模块和手机通信 文章目录 ESP8266 WIFI 模块通过TTL模块和手机通信前言1 调试工具2 模块接线3 模块作为客户端 STA3 1 模块指令3 2 指令示例3 3 数据传输 4 模块作为服务
  • vscode安装git工具

    1 打开vscode后 xff0c 提示如图 2 点击 下载Git 3 自动跳转到git下载官网 xff0c 没跳转的直接去网页搜索也是可以进去的 4 点击下载 5 下载完之后打开安装包 xff0c 无脑下一步安装 6 重启vscode 会

随机推荐

  • Python入门之无参装饰器

    1 什么是装饰器 器指的是工具 装饰指的是没其他事物添加额外的东西点缀 一起的解释就是 xff1a 定义一个函数 xff0c 该函数是用来装饰其他函数添加额外的功能 2 为何要用装饰器 开放封闭原则 开放指的是扩展功能是开放的 封闭 xff
  • 数据清洗的一般方法和步骤

    在正式分析数据前 xff0c 我们通常需要先预处理一下数据 xff0c 比如筛选有效样本 xff0c 定义变量格式 xff0c 处理缺失值等 xff0c 这些操作也就是是数据清洗的过程 xff0c 目的是把数据整理成比较清洁的形式 xff0
  • 【操作系统】死锁(详细)

    文章目录 一 死锁的概念二 死锁的产生因素三 死锁的必要条件1 互斥条件2 占有和等待条件 xff08 部分分配条件 xff09 3 不剥夺条件4 循环等待条件 xff08 环路条件 xff09 四 死锁防止1 破坏互斥条件2 破坏占有和等
  • 浏览器验证码图片(缩略图)显示不出来问题解决办法

    上面是我未解决前的网页图片 xff0c 这种缩略图显示不出来很着急 尤其是验证码图片那种 xff0c 找了很多网上的方法都不管用 xff0c 最终才弄出来的 解决办法 xff1a 切换网络 我之前是用的学校的校园网 xff0c 结果如上图
  • ROS 学习笔记 坐标变换

    TF坐标变换 TF xff1a TransForm Frame xff0c 坐标变换 坐标系 xff1a ROS 中是通过坐标系统开标定物体的 xff0c 确切的将是通过右手坐标系来标定的 注 xff1a 在ROS中坐标变换最初对应的是tf
  • 51单片机之智能小车(避障、跟随、循迹)

    目录 基本概述 硬件组成 功能 关键字 模块介绍 电机模块L9110S 循迹模块 xff08 TCRT5000传感器 xff09 红外避障模块 测速模块 小车 移动小车 xff08 控制电机转动 xff0c 使小车前进 后退 左转 右转 x
  • STM32之USART

    USART USART Universal Synchronous Asynchronous Receiver Transmitter 是一个全双工通用同步 异步串行收发器 xff0c 该接口是一个高度灵活的串行通信设备 对于USART常用
  • Gvins运行结果处理,时间戳对齐并与RTK真值对比 (matalb代码)

    最近在学习Gvins xff0c 准备自己用matlab处理一下结果 以sports field数据集为例 xff0c 运行Gvins的程序后 xff0c 将Gvins的导航结果保存到CSV文件中 xff0c 得到如下图所示的数据格式 其中
  • ubuntu系统创建定时任务--crontab

    关于crontab cron是一个Linux定时执行工具 xff0c 可以在无需人工干预的情况下运行作业 在Ubuntu server 下 xff0c cron是被默认安装并启动的 通过 etc crontab文件 xff0c 可以看到以下
  • shell基本知识

    为什么学习和使用Shell编程 什么是Shell shell的起源 shell的功能 shell的分类 如何查看当前系统支持的shell xff1f 如何查看当前系统默认shell xff1f 驼峰语句 shell脚本的基本元素 shell
  • OMNeT++ & SUMO 学习记录(二) 常见错误分析

    1 仿真运行时报错 lt gt Could not connect to TraCl server error message 0 No error in module Veins TraClScenarioManagerLaunchd R
  • OMNeT++ & SUMO 学习记录(六)SUMO 路网生成及简单仿真实例

    一 SUMO 路网生成方式 1 外部导入 可以从开源地图集 openstreetmap 中下载地图生成 osm 文件 xff0c 然后通过 sumo 自带的 netconvert 程序将其转换为路网文件 net xml 2 netedit编
  • OMNeT++ & SUMO 学习记录(八)SUMO 公共交通及行人出行仿真

    一 公共交通 1 介绍 SUMO 中大多数公共交通工具使用固定的路线 xff0c 如公共汽车 有轨电车 火车等 xff0c 下面将以公交车为例 xff0c 介绍如何模拟此类交通工具的运行 xff0c 同样的规则也适用于其它公共交通工具 2
  • axios请求的封装方式

    axios请求的铺垫知识 a get请求 需要先 npm i axios 进行装包 当需要get请求数据时 axios get 34 user ID 61 12345 34 then res 61 gt console log res 也可
  • 网络基础之协议栈

    通信协议栈 OSI模型 国际标准化组织ISO在1984年提出了OSI RM xff08 Open System Interconnection Reference Model 开放式互连参考模型 xff09 其基本功能如下 xff1a 物理
  • 关系型和非关系型数据库优缺点、特点、区别、适用场景

    从各个地方学习的 xff0c 不是原创 只是笔记 笔记 笔记 数据库学习笔记 4 数据库 4 1 关系型数据库 常见的有 xff1a MySQL DB2 Oracle Microsoft SQL Server PostgreSQL Micr
  • 十分钟,看完物联网操作系统分析报告!

    一 LuatOS LuatOS 是目前物联网场景唯一能够给工程师完整过程的开发 xff0c 让工程师只聚焦业务逻辑 xff0c 不花费过多时间在工具的熟悉 xff0c 算法的研究 xff0c 调试环境的搭建 xff0c 以及代码陷阱的预防的
  • 16-从零自己写库函数(2)外设结构体定义

    如何写BSRR的置位 复位的库函数 xff1a 1 xff1a 在最初的时候需要先定义GPIO的结构体 ifndef STM32F4XX H define STM32F4XX H include lt stdint h gt define
  • linux系统--chkconfig系统服务命令解读

    chkconfig是管理系统服务 service 的命令行工具 所谓系统服务 service xff0c 就是随系统启动而启动 xff0c 随系统关闭而关闭的程序 chkconfig可以更新 启动或停止 和查询系统服务 service 运行
  • 保研机试——4数据结构(栈、队列、链表、哈夫曼树、二叉树、二叉排序树、前缀树、搜索(DFS/BFS/A*)、图论算法(并查集、最小生成树、最短路径、拓扑))

    cank 在写一道题时 xff0c 首先想到的是怎么取存储输入输出的数据 xff0c 使我们操作更加方便 xff0c 处理的更快 xff0c 所以我们来认识数据结构 xff0c 认识数据存储 xff1a 单值 xff1a 变量 连续 xff