【数据结构】树与二叉树、树与森林部分习题与算法设计例题

目录

  • 【数据结构】树与二叉树部分习题与算法设计例题
    • 一、单选题
    • 二、算法设计题
      • 判断二叉树是否为完全二叉树
      • 求二叉树的最小深度 以及 二叉树树高

  1. 树与二叉树知识点文章: 【数据结构】树与二叉树(递归法先序、中序、后序、层次遍历二叉树、二叉树的建立以及求树高的方法)
  2. 二叉树遍历算法的应用: 【数据结构】树与二叉树遍历算法的应用(求叶子节点个数、求树高、复制二叉树、创建二叉树、二叉树存放表达式、交换二叉树每个结点的左右孩子)
  3. 树与森林知识点文章: 【数据结构】树与森林(树的存储结构、森林与二叉树的转化、树与森林的遍历)

【数据结构】树与二叉树部分习题与算法设计例题

一、单选题

  1. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( )。

A. 5
B. 6
C. 7
D. 8
选D
一棵含有n个结点的树,有n-1个分支,即 n = 1 ∗ 4 + 2 ∗ 2 + 3 ∗ 1 + 4 ∗ 1 + 1 = 16 ; n = 1*4 + 2*2 + 3*1 + 4*1 + 1 = 16; n=14+22+31+41+1=16;
又由于 n = n 0 + n 1 + n 2 + n 3 + n 4 = n 0 + 8 ; n = n_0 + n_1 + n_2 + n_3 + n_4 = n0 + 8; n=n0+n1+n2+n3+n4=n0+8;
n 0 + 8 = 16 n_0 + 8 = 16 n0+8=16,所有叶子结点个数为8

  1. 在下述结论中,正确的是( )
    ①只有一个结点的二叉树的度为0;
    ②二叉树的度为2;
    ③二叉树的左右子树可任意交换;
    ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A 1、2、3

B 2、3、4

C 2、4

D 1、4
选D
(1)对。只有一个结点的二叉树的度为0;
(2)二叉树的要求是度不超过2
(3) 二叉树是有序树,左右子树不能交换位置.
(4)对。深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

  1. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是( )

A m-n

B m-n-1

C n+1

D 条件不足,无法确定
选A
所有节点数减去右兄弟,剩下的就是第一棵树。

  1. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( )

A 9

B 11

C 15

D 不确定
选B
性质3:*对任何一棵二叉树,若它含有 n 0 n_0 n0个叶子结点、 n 2 n_2 n2个度为 2的结点,则必存在关系式 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
n 0 = n 2 + 1 = 10 + 1 = 11 n_0=n_2+1=10+1=11 n0=n2+1=10+1=11

  1. 在一棵三叉树中度为3的结点数为2个, 度为2 的结点数为1个,度为1的结点数为2个,则度为0的结点数为( )个

A. 4

B. 5

C. 6

D. 7
选c
设该树总共有n个节点,则 n = n 0 + n 1 + n 2 + n 3 . n=n_0+n_1+n_2+n_3. n=n0+n1+n2+n3.
该树中除了根节点没有前驱以外,每个节点有且只有一个前驱,因此有n个节点的树的总边数为 n − 1 n-1 n1条.根据度的定义,总边数与度之间的关系为: n − 1 = 0 ∗ n 0 + 1 ∗ n 1 + 2 ∗ n 2 + 3 ∗ n 3 . n-1=0*n_0+1*n_1+2*n_2+3*n_3. n1=0n0+1n1+2n2+3n3.
联立两个方程求解,可以得到 n 0 = 6 n_0=6 n0=6

  1. 设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是( )。

A. M1

B. M1+M2

C. M3

D. M2+M3
选D
根据森林转换为二叉树的法则,二叉树的根结点通常是第一棵树的结点,二叉树的左子树是由第一棵树删去根后所得所有子树构成的,二叉树的右子树是由其它树(第二,第三棵树)构成的,故左子树结点个数是M1-1,右子树上的结点个数是M2+M3。

  1. 具有10个叶结点的二叉树中有( )个度为2的结点,

A. 8

B. 9

C. 10

D. 11
选B
性质3:*对任何一棵二叉树,若它含有 n 0 n_0 n0个叶子结点、 n 2 n_2 n2个度为 2的结点,则必存在关系式 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
计算得 10 − 1 = 9 10-1=9 101=9

  1. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是( )

A. 250

B. 500

C. 254

D. 505

E. 以上答案都不对
选E
方法一:由 性质4: *具有 n 个结点的完全二叉树的深度为: ⌊ log ⁡ 2 n ⌋ + 1 \lfloor\log_2 n\rfloor + 1 log2n+1 可得树高为 9 + 1 = = 10 9+1==10 9+1==10
前九层的总结点个数为 2 9 − 1 = 511 2^9-1=511 291=511
第十层的结点个数为 1001 − 511 = 490 1001-511=490 1001511=490
第九层上结点个数为 2 9 − 1 = 256 2^{9-1}=256 291=256
第九层上叶节点个数为 256 − 490 / 2 = 11 256-490/2=11 256490/2=11
因此叶节点一共有 490 + 11 = 501 ( 个 ) 490+11=501(个) 490+11=501()

方法二:
完全二叉树的最后一个结点的编号是 n n n,则它的父结点的编号为 [ n / 2 ] [n/2] [n/2],则叶子结点个数为 n − [ n / 2 ] n-[n/2] n[n/2]
完全二叉树的最后一个结点的编号一定是1001,则它的父结点的编号为1001/2=500,则叶子结点个数为1001-500=501.

  1. 设给定权值总数有n 个,其哈夫曼树的结点总数为( )

A. 不确定

B. 2n

C. 2n+1

D. 2n-1
选 D
哈夫曼树中只有度为0和2的节点,且有此关系 n 0 = n 2 + 1 ( 度为 0 的节点个数 = 度为 2 的节点个数 + 1 ) n_0=n_2+1(度为0的节点个数=度为2的节点个数+1) n0=n2+1(度为0的节点个数=度为2的节点个数+1) 哈夫曼树中权值所在的节点一定是叶子节点,有哈夫曼树的构造决定的。
因此“给定权值总数有 n n n个”,也就是说叶子节点有 n n n个,则度为2的节点个数为 ( n − 1 ) (n-1) (n1),哈夫曼树总结点个数为 n + ( n − 1 ) = 2 n − 1 n+(n-1)=2n-1 n+(n1)=2n1
根据:
性质3:*对任何一棵二叉树,若它含有 n 0 n_0 n0个叶子结点、 n 2 n_2 n2个度为 2的结点,则必存在关系式 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1

  1. 一个具有1025个结点的二叉树的高h为( )

A. 11

B. 10

C. 11至1025之间

D. 10至1024之间
选A

性质4: *具有 n 个结点的完全二叉树的深度为: ⌊ log ⁡ 2 n ⌋ + 1 \lfloor\log_2 n\rfloor + 1 log2n+1 可得树高为 10 + 1 = = 11 10+1==11 10+1==11

  1. 一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( )结点

A. 2h

B. 2h-1

C. 2h+1

D. h+1
选B
性质3:*对任何一棵二叉树,若它含有 n 0 n_0 n0个叶子结点、 n 2 n_2 n2个度为 2的结点,则必存在关系式 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
在这里插入图片描述

  1. 一棵树高为K的完全二叉树至少有( )个结点

A. 2 k – 1 2^k –1 2k–1

B. 2 k − 1 – 1 2^{k-1} –1 2k1–1

C. 2 k − 1 2^{k-1} 2k1

D. 2 k 2^k 2k
选C
至少的情况:最后一层只有一个叶子结点,前 K-1 层是满二叉树。因此,结点数可以通过以下公式计算: [ 至少结点数 = 2 ( K − 1 ) − 2 ( K − 1 ) + 1 = 2 K − 2 ( K − 1 ) ] [ \text{至少结点数} = 2^{(K-1)} - 2^{(K-1)} + 1 = 2^{K} - 2^{(K-1)} ] [至少结点数=2(K1)2(K1)+1=2K2(K1)]
至多的情况:第 K 层是满二叉树,因此结点数最多为: [ 至多结点数 = 2 K − 1 ] [\text{至多结点数} = 2^{K} - 1 ] [至多结点数=2K1]

完全二叉树:

    1.  完全二叉树:树中所含的 n个结点和满二叉树中编号为 1 至 n 的结点一一对应。
     2.  特点:结点没有左孩子一定没有右孩子;度为1的结点最多有一个

性质1:二叉树的第 i层上至多有 2 i − 1 2^{i-1} 2i1个结点 ( i ≥ 1 ) (i≥1) (i1)
性质2:深度为k的二叉树上至多含 ( 2 k − 1 ) (2^k-1) (2k1)个结点 ( k ≥ 1 ) (k≥1) (k1)。达到最多的时候,就是满二叉树。
性质3:*对任何一棵二叉树,若它含有 n 0 n_0 n0个叶子结点、 n 2 n_2 n2个度为 2的结点,则必存在关系式 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1

  1. 一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是( )

A. CABDEFG

B. ABCDEFG

C. DACEFBG

D. ADCFEG
选B
当二叉树所有节点都只有有右孩子时,选项中只有B成立。

  1. 下面的说法中正确的是( ).
    (1)任何一棵二叉树的叶子结点在三种遍历中的相对次序不变;
    (2)按二叉树定义,具有三个结点的二叉树共有6种。

A. (1)(2)

B. 1

C. 2

D. (1)、(2)都错
选B
(1)是正确的 解析看第15题。任何一颗二叉树的叶子结点在先序、中序、后序遍历序列中的相对次序是不发生改变的
(2)应该是五种.
在这里插入图片描述

  1. 在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序( )

A. 都不相同

B. 完全相同

C. 先序和中序相同,而与后序不同

D. 中序和后序相同,而与先序不同
选B

  • 前序遍历序列的顺序是根节点 --> 左子树 --> 右子树;
  • 后序遍历序列的顺序是左子树 --> 右子树 --> 根结点;
  • 中序遍历序列的顺序是左子树 --> 根结点 --> 右子树;
    因此相对次序发生变化的都是子树的根,也就是非叶结点。 所以各叶子之间的相对次序关系在前序序列、中序序列和后序序列中是一样的。
  1. 某二叉树的前序序列和后序序列正好相反,则该二叉树一定是()的二叉树。

A. 空或只有一个结点

B. 任一结点无左子树

C. 高度等于其结点数

D. 任一结点无右子树
选C
高度等于其结点个数的二叉树,即任意结点只有左孩子或只有右孩子,前序序列即从上向下的层序,后序序列即从下向上的层序。

  1. 若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则x的前驱为( )

A. X的双亲

B. X的右子树中最左的结点

C. X的左子树中最右结点

D. X的左子树中最右叶结点
正确答案:C
在这里插入图片描述

  1. 引入二叉线索树的目的是( )

A. 加快查找结点的前驱或后继的速度

B. 为了能在二叉树中方便的进行插入与删除

C 为了能方便的找到双亲

D. 使二叉树的遍历结果唯一
选A 加快查找结点前驱和后继的速度

  1. n个结点的线索二叉树上含有的线索数为( )

A. 2n

B. n-1

C. n+1

D. n
选C
一个有n个节点的线索二叉树,每个节点都有指向左右孩子的两个指针域,则共有2n个指针域,而n个节点共有n-1条分支,所以共有2n-(n-1)个空指针域,即有n+1个线索.

  1. 下述编码中哪一个不是前缀码( )。

A. (00,01,10,11)

B. (0,1,00,11)

C. (0,10,110,111)

D. (1,01,000,001)
选B
000的前缀 111的前缀

二、算法设计题

判断二叉树是否为完全二叉树

  1. 判断二叉树是否为完全二叉树

判断二叉树是否为完全二叉树的函数:

//完全二叉树的性质
bool check(BiTree T){
    if((T->lchild && T->rchild)||(!T->lchild && !T->rchild))
        return true;
    return false;
}       


//判断是否的完全二叉树
bool is_Complete_Binarytree(BiTree T){
    BiTree p=T;
    SqQueue Q;
    if(!T) return true;//空树也是完全二叉树
    InitQueue(Q);
    EnQueue(Q,p);
    while(!is_QueueEmpty(Q)){
        DeQueue(Q,p);
        if(!check(p)) return false;
        else{
            if(p->lchild) 
                EnQueue(Q,p->lchild);
		    if(p->rchild) 
                EnQueue(Q,p->rchild);
        }
    }
    return true;
}

(带main函数)题解代码示例:

//给定一个二叉树,找出其最小深度。
//最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

#include<iostream>
using namespace std;


//判断二叉树是否为完全二叉树

//结点定义入下:
//二叉链表
typedef struct BiTNode{
    char data;
    struct BiTNode *lchild,*rchild;
} BiTNode, *BiTree;

//若用到队列,请用循环队列,并请实现队列的相关操作以供调用。

#define MAXQSIZE 100

typedef struct {
    BiTree *base;
    int front,rear;
} SqQueue; //定义循环队列


//二叉树的建立的算法(按先序遍历序列建立)
void CreateBiTree(BiTree &T) {
	char ch; 
    scanf("%c",&ch);
    if (ch=='#') T = NULL;
    else {
        T = (BiTNode*)malloc(sizeof(BiTNode));
        T->data = ch;      // 生成根结点
        CreateBiTree(T->lchild); // 构造左子树
        CreateBiTree(T->rchild); // 构造右子树
    }
}
//队列的初始化
void InitQueue(SqQueue &Q){
    Q.base = (BiTree *)malloc(MAXQSIZE*sizeof(BiTree));
    Q.front = Q.rear = 0;//队列初始化
}

//队空
bool is_QueueEmpty(SqQueue Q){
    if(Q.rear==Q.front) return true;
    return false;
}

//队满
bool is_QueueMAX(SqQueue Q){
    if((Q.rear+1)%MAXQSIZE == Q.front) return true;
    return false;
}


//入队
void EnQueue(SqQueue &Q,BiTree e){
    if(!is_QueueMAX(Q)){
        Q.base[Q.rear]=e;
        Q.rear = (Q.rear + 1) % MAXQSIZE;
    }
    
    else{
        cout<<"ERROR!!! 队列已满"<<endl;
    }
}
//出队
void DeQueue(SqQueue &Q,BiTree &e){
    if(!is_QueueEmpty(Q)){
        e = Q.base[Q.front];
        Q.front = (Q.front + 1) % MAXQSIZE;
    }
    else{
        cout<<"ERROR!!! 队列为空"<<endl;
    }
}

//完全二叉树的性质
bool check(BiTree T){
    if((T->lchild && T->rchild)||(!T->lchild && !T->rchild))
        return true;
    return false;
}       


//判断是否的完全二叉树
bool is_Complete_Binarytree(BiTree T){
    BiTree p=T;
    SqQueue Q;
    if(!T) return true;//空树也是完全二叉树
    InitQueue(Q);
    EnQueue(Q,p);
    while(!is_QueueEmpty(Q)){
        DeQueue(Q,p);
        if(!check(p)) return false;
        else{
            if(p->lchild) 
                EnQueue(Q,p->lchild);
		    if(p->rchild) 
                EnQueue(Q,p->rchild);
        }
    }
    return true;
}

//层次遍历算法 
void LevelOrderTraverse(BiTree T)
{	BiTree p = T;
	SqQueue Q;
	
	
	if(!T) return;	
	
	InitQueue(Q); EnQueue(Q,p);
	while (!is_QueueEmpty(Q))
	{	DeQueue(Q,p);
		printf("%c ", p->data);
		if(p->lchild) EnQueue(Q,p->lchild);
		if(p->rchild) EnQueue(Q,p->rchild);
	}
}




int main(){
	 
	BiTree T;
	//例如输入:ABC##DE##F### 来创建二叉树 
	CreateBiTree(T);
    LevelOrderTraverse(T);
    cout<<endl;
    if(is_Complete_Binarytree(T)){
        cout<<"是完全二叉树"<<endl;
    }
    else{
        cout<<"不是完全二叉树"<<endl;
    }
	

	return 0; 
} 

求二叉树的最小深度 以及 二叉树树高

  1. 求二叉树的最小深度
    给定一个二叉树,找出其最小深度。
    最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

求二叉树的最小深度的函数:

//直接就是将求树高的程序进行修改,将找左右子树最大树高 改为求左右子树 最小树高
//求二叉树的最小深度
int Get_minHeigt(BiTree T){
    //二叉树的最小深度
    if(T==NULL) return 0;
    else{
        int Left_Height = Get_minHeigt(T->lchild);
        int Right_Height = Get_minHeigt(T->rchild);
        int Tree_minHeight = 1+(Left_Height < Right_Height?Left_Height:Right_Height);//取最短路径
        return Tree_minHeight;
    }

}

(带main函数)题解代码示例:

//给定一个二叉树,找出其最小深度。
//最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

#include<iostream>
using namespace std;


typedef struct TreeNode{
	int data;//数据域
	TreeNode *rchild;//右孩子指针
	TreeNode *lchild;//左孩子指针
}TreeNode, *BiTree;


//二叉树的建立的算法(按先序遍历序列建立)
void CreateBiTree(BiTree &T) {
	char ch; 
    scanf("%c",&ch);
    if (ch=='#') T = NULL;
    else {
        T = (TreeNode*)malloc(sizeof(TreeNode));
        T->data = ch;      // 生成根结点
        CreateBiTree(T->lchild); // 构造左子树
        CreateBiTree(T->rchild); // 构造右子树
    }
}


//求树高 
int Get_Height(BiTree node){//递归 求树高 
	if(node==NULL) return 0;
	else{
		int Left_Height = Get_Height(node->lchild);
		int Right_Height = Get_Height(node->rchild);
		int Tree_Height = 1 + (Left_Height > Right_Height?Left_Height:Right_Height);//计算树高
    	return Tree_Height;
	}
	
}
//求二叉树的最小深度
int Get_minHeigt(BiTree T){
    //二叉树的最小深度
    if(T==NULL) return 0;
    else{
        int Left_Height = Get_minHeigt(T->lchild);
        int Right_Height = Get_minHeigt(T->rchild);
        int Tree_minHeight = 1+(Left_Height < Right_Height?Left_Height:Right_Height);//取最短路径
        return Tree_minHeight;
    }

}


int main(){
	 
	BiTree T;
	//例如输入:ABC##DE##F### 来创建二叉树 
	CreateBiTree(T);

	cout<<"树高为:" ;
	cout<<Get_Height(T)<<endl;
    cout<<"根节点到叶节点的最短路径上的节点数量为:";
    cout<<Get_minHeigt(T)<<endl;

	return 0; 
} 

感谢阅读!!!

  1. 树与二叉树知识点文章: 【数据结构】树与二叉树(递归法先序、中序、后序、层次遍历二叉树、二叉树的建立以及求树高的方法)
  2. 二叉树遍历算法的应用: 【数据结构】树与二叉树遍历算法的应用(求叶子节点个数、求树高、复制二叉树、创建二叉树、二叉树存放表达式、交换二叉树每个结点的左右孩子)
  3. 树与森林知识点文章: 【数据结构】树与森林(树的存储结构、森林与二叉树的转化、树与森林的遍历)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/547352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL数据库 | 第二十四篇】Limit语句的性能问题和调优策略

前言&#xff1a; MySQL作为最流行的关系型数据库管理系统之一&#xff0c;被广泛应用于各种规模和类型的应用程序中。其强大的功能和灵活的查询语言使得开发人员能够高效地执行各种数据操作和分析。 然而&#xff0c;在处理大量数据或复杂查询时&#xff0c;一些开发人员可能…

研究生,该学单片机还是plc。?

PLC门槛相对较低&#xff0c;但是在深入学习和应用时&#xff0c;仍然有很高的技术要求。我这里有一套单片机入门教程&#xff0c;不仅包含了详细的视频 讲解&#xff0c;项目实战。如果你渴望学习单片机&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&am…

仿真服务器介绍及应用

仿真服务器是一种高性能的计算设备&#xff0c;专门用于运行复杂的仿真软件和处理大量的计算任务。 仿真服务器通常具备以下特点&#xff1a; 1. 高性能硬件配置&#xff1a;为了满足仿真软件对计算能力的要求&#xff0c;仿真服务器通常配备高性能的CPU、大量的内存以及高速的…

Zookeeper与Kafka消息队列

目录 一、Zookeeper 1、zookeeper简介 2、zookeeper的特点 3、zookeeper的工作模式跟工作机制 3.1 工作模式&#xff1a; 3.2工作机制&#xff1a;​编辑 4、zookeeper应用场景及选举机制 4.1 应用场景&#xff1a; 4.2 选举机制&#xff1a; 4.2.1第一次启动选举机制…

[阅读笔记1][GPT-3]Language Models are Few-Shot Learners

首先讲一下GPT3这篇论文&#xff0c;文章标题是语言模型是小样本学习者&#xff0c;openai于2020年发表的。 这篇是在GPT2的基础上写的&#xff0c;由于GPT2还存在一些局限&#xff0c;这篇对之前的GPT2进行了一些完善。GPT2提出了多任务学习&#xff0c;也就是可以零样本地用在…

ABAP MESSAGE 常用的类型

类型文本描述A终止处理终止&#xff0c;用户必须重启事务X退出与消息类型A 类似&#xff0c;但带有程序崩溃 MESSAGE_TYPE_XE错误处理受到干扰&#xff0c;用户必须修正输入条目,左下角提示!W警告处理受到干扰&#xff0c;用户可以修正输入条目,左下角提示!I信息处理受到干扰&a…

数字的字面表示:正负数、进位制、数学浮点数与科学计数法

示例&#xff1a; /*** brief how about plain-number? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <stdio.h>static…

【代码随想录】【动态规划】day43:● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

最后一块石头的重量 与分割等和子集类似 思路&#xff1a;尽量分割成两个sum值相近的数组1和2&#xff0c;求其中一个数组为sum(stone)//2时的一种情况 dp[j]:容量&#xff08;这里说容量更形象&#xff0c;其实就是重量&#xff09;为j的背包&#xff0c;最多可以背最大重量…

DFS专题:力扣岛屿问题(持续更新)

DFS专题&#xff1a;力扣岛屿问题 一、岛屿数量 题目链接: 200.岛屿数量 题目描述 代码思路 使用for对每一个网格点进行判断&#xff0c;如果遇到未搜索过的’1’&#xff0c;则使岛屿数加一&#xff0c;并利用dfs将与其相连的‘1’都进行标记&#xff0c;确保每次搜索到1都…

51单片机-LED模块

文章目录 1.点亮一个LED灯2.LED闪烁3.LED流水灯 1.点亮一个LED灯 #include <REGX52.H> void main() {P20xFE; //1111 1110while(1){} }2.LED闪烁 增加延时&#xff0c;控制LED的亮灭间隙 延时函数的添加依靠STC-ISP软件的延时函数功能代码自动生成&#xff0c;如图 #i…

数据库查询:查询入参类型和数据库字段类型不匹配导致的问题

问题&#xff1a;假设我们现在有这样的一张表 CREATE TABLE test_person (id int(20) NOT NULL COMMENT 主键,name varchar(20) DEFAULT NULL COMMENT 姓名,gender char(2) DEFAULT NULL COMMENT 性别,birthday date DEFAULT NULL COMMENT 生日,created_time timestamp NULL D…

【电控笔记8】前馈技术

2.4前馈 前馈可以减轻控制器的负担

安宝特方案 | AR工业解决方案系列-工厂督查

在工业4.0时代&#xff0c;增强现实&#xff08;AR&#xff09;技术正全面重塑传统工业生产&#xff0c;在工厂监督领域&#xff0c;其应用不仅大幅提升了生产效率、监测准确性和规范执行程度&#xff0c;而且为整体生产力带来了质的飞跃。 01 传统挑战与痛点 在制造业生产流程…

【前端面试3+1】17 伪类和伪元素的区别、CSS权重、图片显示优化、【二叉树最大深度】

一、伪类和伪元素的区别 1、伪类&#xff1a; 伪类是用来描述元素的特定状态的选择器&#xff0c;比如:hover、:active、:first-child等。伪类在选择器中以冒号&#xff08;:&#xff09;开头&#xff0c;用于匹配处于特定状态的元素。伪类可以用于选择DOM元素的特定状态&#…

ARM看门狗定时器

作用 在S3C2440A中&#xff0c;看门狗定时器的作用是当由于噪声和系统错误引起的故障干扰时恢复控制器的工作。 也就是说&#xff0c;系统内部的看门狗定时器需要在指定时间内向一个特殊的寄存器内写入一个数值&#xff0c;俗称喂狗。 如果喂狗的时间过了&#xff0c;那么看门…

基于springboot+vue实现的疫情防控物资调配与管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

探索顶级短视频素材库:多样化选择助力创作

在数字创作的浪潮中&#xff0c;寻找优质的短视频素材库是每位视频制作者的必经之路。多种短视频素材库有哪些&#xff1f;这里为您介绍一系列精选的素材库&#xff0c;它们不仅丰富多样&#xff0c;而且高质量&#xff0c;能极大地提升您的视频创作效率和质量。 1.蛙学网 蛙学…

git操作基本命令

Git命令操作&#xff1a; 1、服务器上面有新的修改&#xff0c;pull出现错误操作如下 git stash git pull origin master git stash pop 2、删除本地一个文件test.py,想重新download远程服务器最新的文件 #git checkout test.py 3、查看当前处于哪一个分支 #git …

stm32开发之threadx整合letter-shell 组件记录

前言 使用过rt-thread的shell 命令交互的方式&#xff0c;觉得比较方便,所以在threadx中也移植个shell的组件。这里使用的是letter-shellletter-shell 核心的逻辑在于组件通过链接文件自动初始化或自动添加的两种方式&#xff0c;方便开发源码仓库 实验(核心代码) shell 线程…

ECMA进阶1之从0~1搭建react同构体系项目1

ECMA进阶 ES6项目实战前期介绍SSRpnpm 包管理工具package.json 项目搭建初始化配置引入encode-fe-lint 基础环境的配置修改package.jsonbabel相关tsconfig相关postcss相关补充scripts脚本webpack配置base.config.tsclient.config.tsserver.config.ts src环境server端&#xff1…