《数据结构》期末考试测试题【中】

《数据结构》期末考试测试题【中】

    • 21.循环队列队空的判断条件为?
    • 22. 单链表的存储密度比1?
    • 23.单链表的那些操作的效率受链表长度的影响?
    • 24.顺序表中某元素的地址为?
    • 25.m叉树第K层的结点数为?
    • 26. 在双向循环链表某节点的后面插入一个新节点的操作为?
    • 27.顺序表中时间复杂度为 O ( 1 ) O(1) O(1)的操作为?
    • 28.关于线性表的链式存储描述正确的为?
    • 29.单向循环链表删除第一个元素的操作为?
    • 30.有序单链表中查找操作的平均查找节点数为?
    • 31.某哈夫曼树的叶子结点树为?
    • 32.某字符串的子串的个数为?
    • 33.某栈的第i次出栈元素为?
    • 34.在顺序表中插入一个新元素需要后移的元素数?
    • 35.创建一个有序单链表的时间复杂为?
    • 36.两个有序表合并为一个有序表的最少比较次数为?
    • 37.与哈希表的查找效率无关的为?
    • 38.判断哪个关键字序列是堆?
    • 39.排序算法中是稳定的排序算法的为?
    • 40.在10000个元素中最快的找到其中最大的10个元素的排序算法为?


往期练习题回顾:
链接:
数据结构测试题【上】


21.循环队列队空的判断条件为?

在这里插入图片描述

循环队列 :将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。

  • 当队列为空时,意味着没有任何元素在队列中。
  • 在这种情况下,队头指针front和队尾指针rear应该指向同一个位置。
    • 因为没有元素,就不存在头和尾的间隔。
    • 所以队空的条件rear == front

A选项:

  • (rear + 1)%n==front:这是循环队列队满的判断条件,而不是队空的条件。
  • 当队满时,尾指针的下一个位置(循环意义下)是头指针。

答案【C】


22. 单链表的存储密度比1?

存储密度 :指数据元素本身所占的存储量和整个结点结构所占的存储量之比。

  • 在单链表中,每个结点除了存储数据元素本身之外,还需要存储指向下一个结点的指针。

  • 设数据元素所占的存储空间为D,指针所占的存储空间为P,那么一个结点所占的存储空间就是D + P

  • 存储密度 = D D + P =\frac{D}{D + P} =D+PD

  • 由于 P > 0 , P>0, P>0所以 D D + P < 1 \frac{D}{D + P}<1 D+PD<1

所以:单链表的存储密度小于1


23.单链表的那些操作的效率受链表长度的影响?

在这里插入图片描述

A选项:

  • 已知单链表设置了头指针,若要删除首元结点,只需要让头指针指向原首元结点的下一个结点。
  • ( ( 假设头指针为 h e a d , head, head原首元结点为 h e a d − > n e x t , head - \gt next, head>next操作 h e a d = h e a d − > n e x t ) head=head - \gt next) head=head>next
  • 所以:删除单链表的首元结点,这个操作与单链表的长度 n n n无关。

B选项:

  • 因为单链表只有头指针和尾指针,要删除尾结点,需要先遍历单链表找到尾结点的前驱结点。
  • 单链表的长度为 n , n, n遍历单链表找到尾结点的前驱结点需要 O ( n ) O(n) O(n)的时间复杂度。
  • 所以:删除单链表的尾结点,这个操作与单链表的长度有关。

C选项:

  • 由于设置了头指针,要在首元结点之前插入新元素,只需要创建新结点,让新结点的 n e x t next next指针指向原首元结点,然后让头指针指向新结点。
  • (假设头指针为 h e a d , head, head原首元结点为 h e a d − > n e x t , head - \gt next, head>next新结点为 p , p, p操作 p − > n e x t = h e a d − > n e x t , h e a d = p ) p - \gt next = head - \gt next,head = p) p>next=head>nexthead=p
  • 所以:在首元结点之前插入一个新元素,这个操作与单链表的长度 n n n无关。

D选项:

  • 因为设置了尾指针,尾指针直接指向尾结点。要在尾结点之后插入新元素,只需要修改尾指针指向新结点,新结点的 n e x t next next指针设为 N U L L , NULL, NULL然后更新尾指针指向新结点。
  • (假设尾指针为 r e a r , rear, rear新结点为 p , p, p操作 r e a r − > n e x t = p , p − > n e x t = N U L L , r e a r = p ) , rear - \gt next = p,p - \gt next=NULL,rear = p), rear>next=pp>next=NULLrear=p这个操作与单链表的长度n无关。
  • 所以:在尾结点之后插入一个新元素,这个操作与单链表的长度 n n n无关。

答案【B】


24.顺序表中某元素的地址为?

在这里插入图片描述

顺序表中元素地址的计算方法:

i i i个元素的地址 L O C ( i ) LOC(i) LOC(i)与第一个元素地址 L O C ( 1 ) LOC(1) LOC(1)的关系为:
L O C ( i ) = L O C ( 1 ) + ( i − 1 ) ∗ L LOC(i)=LOC(1)+(i - 1)*L LOC(i)=LOC(1)+(i1)L

  • 其中 L L L是每个元素的长度。

  • 这里 L O C ( 1 ) = 100 , i = 5 , L = 2 LOC(1)=100,i = 5,L = 2 LOC(1)=100i=5L=2

  • 根据上述公式 L O C ( 5 ) = 100 + ( 5 − 1 ) ∗ 2 LOC(5)=100+(5 - 1)*2 LOC(5)=100+(51)2

答案【C】


25.m叉树第K层的结点数为?

在这里插入图片描述

m m m叉树的结点个数规律:

  • 1 1 1层有 1 = m 1 − 1 1 = m^{1 - 1} 1=m11个结点。
  • 2 2 2层有 m = m 2 − 1 m=m^{2 - 1} m=m21个结点。
  • 3 3 3层有 m 2 = m 3 − 1 m^{2}=m^{3 - 1} m2=m31个结点。
  • 以此类推,第 k k k层有 m k − 1 m^{k - 1} mk1个结点。

这里深度 h h h是一个干扰条件,求第 k k k层的结点个数与树的深度h无关(只要 1 ⩽ k ⩽ 1\leqslant k\leqslant 1k即可)

答案【A】


26. 在双向循环链表某节点的后面插入一个新节点的操作为?

在这里插入图片描述

  • 第一步:要先让q的前驱指针q -> prior指向p,即q -> prior=p
    • 因为q要插入到p后面,所以q的前驱就是p
  • 第二步:让q的后继指针q -> next指向p的后继p -> next,即q -> next=p -> next
    • 因为q要插入到p后面,所以q的后继就是p -> next
  • 第三步:修改p原来的后继p -> next的前驱指针,让p -> next -> prior指向q,即p -> next -> prior=q
    • 因为q插入到了p和p -> next之间,所以p -> next的前驱就变成了q
  • 第四步:最后让p的后继指针p -> next指向q,即p -> next=q
    • 因为q插入到了p和p -> next之间,所以p的后继就变成了q

在双向循环链表中,要在p指针所指的结点后插入q所指向的新结点的核心原理:

插入新节点的四步操作中只要保证:

  • q -> next=p -> nextp -> next -> prior=q操作

  • p -> next=q操作之前即可

A选项:

q -> prior = p;
q -> next = p -> next;
p -> next -> prior = q;
p -> next = q;

这个操作顺序是正确的,按照我们前面分析的插入步骤进行操作。

B选项:

p -> next = q;
p -> next -> prior = q;
q -> prior = p;
q -> next = p -> next;
  • 这里第一步p -> next = q就破坏了链表原来的结构。
  • 在还没有处理好q与其他节点的关系之前就修改了p的后继指针,导致后续操作无法正确进行。

C选项:

q -> prior = p;
q -> next = p -> next;
p -> next = q;
p -> next -> prior = q;
  • 其中第三步p -> next = q和第四步p -> next -> prior = q顺序错误。
  • 应该先修改p -> next -> prior再修改p -> next

D选项:

p -> next = q;
q -> prior = p;
p -> next -> prior = q;
q -> next = p -> next;
  • 第一步p -> next = q破坏了链表结构。

答案【A】


27.顺序表中时间复杂度为 O ( 1 ) O(1) O(1)的操作为?

在这里插入图片描述

A选项:

n n n个结点从小到大排序,常见的排序算法如冒泡排序、插入排序、快速排序等,它们的时间复杂度都不是 O ( 1 ) O(1) O(1)

  • 例如冒泡排序的时间复杂度为 O ( n 2 ) O(n^{2}) O(n2)
  • 快速排序平均时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)

B选项:

  • 在顺序表中删除第 i i i个结点,需要将第 i + 1 i + 1 i+1个结点到第 n n n个结点依次向前移动一位。
  • 这个操作平均需要移动 n − i n - i ni个结点,时间复杂度为 O ( n ) O(n) O(n),而不是 O ( 1 ) O(1) O(1)

C选项:

  • 在顺序表中第 i i i个结点后插入一个新结点,需要将第 i + 1 i+1 i+1个结点到第 n n n个结点依次向后移动一位。
  • 这个操作平均需要移动 n − i n - i ni个结点,时间复杂度为 O ( n ) O(n) O(n),而不是 O ( 1 ) O(1) O(1)

D选项:

  • 访问第 i i i个结点 ( 1 ≤ i ≤ n ) (1\leq i\leq n) (1in),因为顺序表是一种随机存取结构,直接通过数组下标就可以访问到第 i i i个结点,时间复杂度为 O ( 1 ) O(1) O(1)
  • 求第 i i i个结点的直接前驱 ( 2 ≤ i ≤ n ) (2\leq i\leq n) (2in),在顺序表中,第 i i i个结点的直接前驱是第 i − 1 i - 1 i1个结点,同样可以直接通过数组下标访问,时间复杂度为 O ( 1 ) O(1) O(1)

答案【D】


28.关于线性表的链式存储描述正确的为?

在这里插入图片描述

链式存储结构的概念:

  • 链式存储结构是通过指针将各个数据节点连接起来的一种存储方式。
  • 每个节点包含数据部分和指向下一个节点的指针部分。

在链式存储结构中,节点在内存中的存储位置并不需要严格按照顺序:

  • 例如,第一个节点可以存储在内存地址100的位置,第二个节点可以存储在内存地址200的位置,它们通过指针相互关联。
  • 当然,这些节点也可以连续存储,比如第一个节点在100,第二个节点在104(假设每个节点占用4个字节)

所以:线性表若采用链式存储结构时,内存中可用存储单元的地址连续或不连续都可以

答案【B】


29.单向循环链表删除第一个元素的操作为?

在这里插入图片描述

A选项:

q=h->next;
h->next=q->next;
if(p==q)
{
    p=h; 
}
free(q);
  • 第一步q = h->next;这里的目的是让 q 指向要删除的第一个结点。
    • 因为 h 是头结点, h->next 就是第一个实际的数据结点。
  • 第二步h->next = q->next; 这一步是将头结点 h 的 next 指针指向原来第一个结点( q 所指向的结点)的下一个结点。
    • 这样就把第一个结点从链表中“断开”了。
  • 第三步if(p == q)
    • 因为 p 是尾指针,如果要删除的结点 q 就是尾结点(在单循环链表中这种情况是可能的)
    • 那么在删除 q 后,尾指针 p 应该指向头结点 h ,所以 p = h;
  • 第四步free(q);释放 q 所指向的结点(也就是原来的第一个结点)的内存空间。

B选项:

h->next=h->next->next;
q=h->next;
free(q);
  • 第一步h->next = h->next->next; 这一步确实将头结点 h 的 next 指针指向了原来第一个结点的下一个结点。
    • “断开”了第一个结点。
  • 第二步q = h->next;,此时 q 指向的是原来第一个结点的下一个结点,而不是要删除的第一个结点。
    • 这就导致 free(q); 释放的是错误的结点。

C选项:

q=h->next;
h->next=q->next;
if(p!=q)
{
    p=h;
}
free(q);
  • 这个选项中的语句if(p != q),导致无法进行正确的删除操作。

D选项:

q=h->next;
h->next=h->next->next;
free(q);
  • 第一步q = h->next;让 q 指向要删除的第一个结点。
  • 第二步h->next = h->next->next;将头结点 h 的 next 指针指向原来第一个结点的下一个结点。
    • “断开”了第一个结点。
    • 但是没有考虑如果要删除的结点 q 是尾结点时尾指针 p 的更新情况,所以这个选项是不完整的。

答案【A】


30.有序单链表中查找操作的平均查找节点数为?

在这里插入图片描述

长度为 n n n有序单链表查找值等于 x x x的结点:

  • 在最好的情况下,也就是要查找的元素在表头,只需要比较 1 1 1次。
  • 在最坏的情况下,要查找的元素在表尾,则需要比较 n n n次。

对于有序单链表的查找,其查找成功时的平均查找长度(ASL)计算方式与顺序表的折半查找不同,这里它是一个线性查找过程。

  • 因为每个元素查找成功的概率是相等的,设为 1 / n 。 1/n。 1/n查找第i个元素时,需要比较 i i i次。
  • 那么平均查找长度长度为 A S L = ∑ i = 1 n i × 1 n ASL=\sum_{i = 1}^{n}i\times\frac{1}{n} ASL=i=1ni×n1
  • 根据等差数列求和公式 ∑ i = 1 n i = n ( n + 1 ) 2 , \sum_{i = 1}^{n}i=\frac{n(n + 1)}{2}, i=1ni=2n(n+1)所以 A S L = 1 n × n ( n + 1 ) 2 = n + 1 2 ASL=\frac{1}{n}\times\frac{n(n + 1)}{2}=\frac{n + 1}{2} ASL=n1×2n(n+1)=2n+1

答案【A】


31.某哈夫曼树的叶子结点树为?

在这里插入图片描述

  • 对于哈夫曼树:结点总数 = 叶子结点个数+ 度为2的结点个数(哈夫曼树并且不存在度为1的结点)
  • 二叉树的性质: 叶子结点个数=度为2的结点个数 + 1

哈夫曼树的性质:

  • 结点总数 = 2 * 度为2的结点个数 + 1
  • 结点总数 = 2 * 度为0的结点个数 - 1

答案【C】


32.某字符串的子串的个数为?

在这里插入图片描述

子串的概念:

  • 空串是任何串的子串。
  • 对于一个长度为 n n n的串 S , S, S非空子串的个数 n ( n + 1 ) 2 \frac{n(n + 1)}{2} 2n(n+1)

  • 这里串 S = “ s o f t w a r e ” , S=“software”, S=software其长度 n = 8 , n = 8, n=8所以非空子串的个数为 36 36 36

  • 但是不要忘记空串也是子串,所以子串的总个数应该是 36 + 1 = 37 36+1 = 37 36+1=37

答案【D】

33.某栈的第i次出栈元素为?

在这里插入图片描述

  • 已知入栈序列是 1 , 2 , 3 , ⋯   , n 1,2,3,\cdots,n 1,2,3,,n
  • p 1 = n , p1 = n, p1=n即第一个出栈的是 n , n, n同时它也是最后入栈的元素。
  • 这意味着 1 , 2 , 3 , ⋯   , n 1,2,3,\cdots,n 1,2,3,,n这些元素是先全部入栈,然后再开始出栈操作。

栈是一种后进先出(LIFO)的数据结构

  • 那么第二个出栈的元素 p 2 , p2, p2就是在 n n n入栈之前最后入栈的元素,也就是 n − 1 n - 1 n1
  • 第三个出栈的元素 p 3 p3 p3就是 n − 2 n-2 n2
  • 按照这个规律,第 i i i个出栈的元素 p i , pi, pi就是 p i = n − ( i − 1 ) = n − i + 1 pi=n-(i - 1)=n - i+1 pi=n(i1)=ni+1

答案【C】


34.在顺序表中插入一个新元素需要后移的元素数?

在这里插入图片描述

在顺序表的第 i i i个元素 ( 1 ≤ i ≤ n + 1 ) (1 \leq i \leq n + 1) 1in+1之前插人一个新元素时。

  • 需从最后一个元素即第 n n n个元素开始,依次向后移动一个位置,直至第 i i i个元素。

总计共 n − i − 1 n-i-1 ni1个元素。

答案【B】


35.创建一个有序单链表的时间复杂为?

在这里插入图片描述

对于创建一个有序单链表,每插入一个节点都需要在已有的链表中找到合适的位置进行插入。

  • 当插入第一个节点时,不需要比较,时间复杂度为 O ( 1 ) O(1) O(1)
  • 当插入第二个节点时,最多需要比较 1 1 1次找到合适的插入位置,时间复杂度为 O ( 1 ) O(1) O(1)
  • 当插入第三个节点时,最多需要比较 2 2 2次找到合适的插入位置,时间复杂度为 O ( 2 ) O(2) O(2)
  • 以此类推,当插入第 n n n个节点时,最多需要比较 n − 1 n - 1 n1次找到合适的插入位置,时间复杂度为 O ( n − 1 ) O(n-1) O(n1)

  • 总的比较次数为 1 + 2 + ⋯ + ( n − 1 ) 1 + 2+\cdots+(n - 1) 1+2++(n1)
  • 根据等差数列求和公式 S = n ( n − 1 ) 2 , S=\frac{n(n - 1)}{2}, S=2n(n1)这里n表示项数。
  • 时间复杂度的大O表示法忽略常数低阶项 , n ( n − 1 ) 2 ,\frac{n(n - 1)}{2} 2n(n1)的最高阶是 n 2 , n^{2}, n2所以时间复杂度为 O ( n 2 ) O(n^{2}) O(n2)

答案【C】


36.两个有序表合并为一个有序表的最少比较次数为?

在这里插入图片描述

对于将两个各有 N N N个元素的有序表归并成一个有序表的情况,要使比较次数最少,就是: 当一个表的最大元素小于另一个表的最小元素时

  • 例如,有表 A = [ a 1 , a 2 , ⋯   , a N ] A = [a_1,a_2,\cdots,a_N] A=[a1,a2,,aN]和表 B = [ b 1 , b 2 , ⋯   , b N ] B=[b_1,b_2,\cdots,b_N] B=[b1,b2,,bN]
  • a N < b 1 , a_N < b_1, aN<b1那么只需要将表 A A A N N N个元素依次与 b 1 b_1 b1比较后放入新的有序表,比较次数就是 N N N次。

答案【A】


37.与哈希表的查找效率无关的为?

在这里插入图片描述

哈希表(Hash Table) :也称为散列表

是一种通过哈希函数将键(Key)映射到表中一个位置以便快速访问记录的数据结构。


具体来说,哈希表的查找效率受以下几个因素影响:

哈希函数

  • 良好的哈希函数能够将输入的不同值均匀地映射到哈希表的不同索引位置上,从而减少冲突,提高查找效率。

装载因子 :装载因子是哈希表中已存储键值对的数量除以哈希表的长度。

  • 装载因子的增加会导致哈希冲突的增加,从而降低查找效率。
  • 因此,通过调整哈希表的长度或使用动态哈希表等方式来控制负载因子可以提高查找效率。

冲突处理方法

  • 哈希表采用链地址法(Chaining)和开放地址法(Open Addressing)来解决哈希冲突。
  • 合理的冲突解决策略能够减少冲突的发生,从而提高查找效率。

答案【A】


38.判断哪个关键字序列是堆?

在这里插入图片描述

堆分为大根堆和小根堆。

  • 大根堆 :要求每个节点的值都不大于其父节点的值。

  • 小根堆 :要求每个节点的值都不小于其父节点的值。


这里我们可以将这些序列看作完全二叉树的层次遍历序列来进行分析:

在这里插入图片描述

答案【D】


39.排序算法中是稳定的排序算法的为?

在这里插入图片描述

稳定排序 :如果两个相等的元素在排序前后的相对顺序不变,那么这种排序算法就是稳定的排序算法。

不稳定的排序方法包括快速排序希尔排序堆排序

稳定的排序方法包括直接插人排序折半插人排序冒泡排序简单选择排序归并排序基数排序


记忆小窍门 :不稳定的三个排序方法可以简记为快些(希)堆

  • 可以想成当我们试图将很多材料堆积起来时,如果只为了追求“快一些”,可能会导致堆积起来的材料不稳定,容易倒塌。

  • 除了简记为“快些(希)堆”的三个排序方法,其他所有的排序方法都是稳定的。

A选项:

希尔排序 :按照一定的增量对数据进行分组插入排序的改进算法。

  • 在希尔排序的过程中,相同元素可能会因为分组和不同的增量而改变相对顺序,所以希尔排序是不稳定的排序方法。

B选项:

快速排序 :通过选择一个基准元素,将数组分为两部分,左边部分小于基准元素,右边部分大于基准元素,然后递归地对左右两部分进行排序。

  • 在快速排序的过程中,相等元素的相对顺序可能会因为划分操作而改变,所以快速排序是不稳定的排序方法。

C选项:

归并排序 :将数组不断地分成两半,对每一半进行排序,然后再将排好序的两半合并起来。

  • 在合并的过程中,如果遇到相等的元素,会按照原来的顺序依次放入合并后的数组中,所以相等元素的相对顺序不会改变,归并排序是稳定的排序方法。

D选项:

堆排序 :利用堆这种数据结构进行排序的算法。

  • 在调整堆的过程中,相同元素的相对顺序可能会发生改变,所以堆排序是不稳定的排序方法。

答案【C】


40.在10000个元素中最快的找到其中最大的10个元素的排序算法为?

在这里插入图片描述

A选项:

冒泡排序 :相邻元素两两比较,将较大的元素逐步“冒泡”到数组的末尾。

  • 对于 10000 10000 10000个元素的数组,如果要找出最大的 10 10 10个元素,冒泡排序需要对几乎整个数组进行多次比较和交换操作。
  • 它的时间复杂度在最坏情况下为 O ( n 2 ) ( n = 10000 ) , O(n^{2})(n = 10000), O(n2)n=10000即使只找最大的 10 10 10个元素,也需要大量的比较操作,效率较低。

B选项:

快速排序 :通过选择一个基准元素,将数组分为两部分,左边的元素都小于基准元素,右边的元素都大于基准元素,然后递归地对左右两部分进行排序。

  • 快速排序的平均时间复杂度为 O ( n l o g n ) , O(nlogn), O(nlogn)但如果要找出最大的 10 10 10个元素,它仍然需要对整个数组进行较多的划分和比较操作,不能高效地只针对最大的 10 10 10个元素进行处理。

C选项:

简单选择排序 :每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。

  • 它的时间复杂度为 O ( n 2 ) , O(n^{2}), O(n2)要找出最大的 10 10 10个元素,需要进行大量的比较操作,效率不高。

D选项:

堆排序

  • 对于求最大的 10 10 10个元素,可以构建一个大小为 10 10 10的最小堆,然后遍历剩下的 10000 − 10 = 9990 10000 - 10=9990 1000010=9990个元素。如果元素大于堆顶元素,则替换堆顶元素,并调整堆。
  • 这样只需要对 10000 10000 10000个元素进行一次遍历,每次调整堆的时间复杂度为 O ( l o g 10 ) O(log10) O(log10)(因为堆的大小为 10 10 10),总的时间复杂度接近 O ( n ) ( n = 10000 ) , O(n)(n = 10000), O(n)n=10000相比其他算法,在只找出最大的 10 10 10个元素时最节省时间。

答案【D】

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

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

相关文章

Leffa 虚拟试衣论文笔记

Leffa: Learning Flow Fields in Attention for Controllable Person Image Generation https://github.com/xuanandsix/awesome-virtual-try-on-note/tree/main/Leffa 打开链接查看详情&#xff0c;更多虚拟试穿论文持续更新。

BP神经网络的反向传播算法

BP神经网络&#xff08;Backpropagation Neural Network&#xff09;是一种常用的多层前馈神经网络&#xff0c;通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数&#xff0c;从而调整权重&#xff0c;使得网络的预测输出与真实输出之间…

Git快速入门(三)·远程仓库GitHub以及Gitee的使用

目录 1. 远程仓库GitHub 1.1 登录 1.2 创建库 1.3 创建文件 1.4 修改文件 1.5 创建分支 1.6 删除库 1.7 将远程仓库下载到本地 1.7.1 关联登录 1.7.2 克隆 1.7.3 通过GitHub Desktop更改远程库 2. 远程仓库Gitee 2.1 登录 2.2 创建文件 2.3 关联…

【JVM】总结篇-字节码篇

字节码篇 Java虚拟机的生命周期 JVM的组成 Java虚拟机的体系结构 什么是Java虚拟机 虚拟机&#xff1a;指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 &#xff0c;是物理机的软件实现。常用的虚拟机有VMWare&#xff0c;Visual Box&…

Springboot日志打印、SpringBoot集成Log4j2(附源码)、异步日志

文章目录 一、Log4j2介绍1.1、常用日志框架1.2、为什么选用log4j2 二、Log4j2整合步骤2.1、引入jar包2.2、配置文件2.3、配置文件模版 三、配置参数简介3.1、日志级别3.2、日志格式&#xff08;PatternLayout&#xff09;3.3、Appenders组件列表3.3.1、Console3.3.2、File3.3.3…

上传本地项目或文件到SVN服务器(图片讲解,超简单)

上传本地项目或文件到SVN服务器&#xff08;图片讲解&#xff0c;超简单&#xff09; 1、使用TortoiseSVN2、输入SVN远程仓库地址3、添加文件或文件夹 需求&#xff1a;将本地的文件上传到SVN服务器上指定路径。前提&#xff1a;已经安装好TortoiseSVN 1、使用TortoiseSVN 右…

使用 HEIC/HEIF 编码器将 HEIC 转换为 JPEG

随着iOS 11之后新的HEIF图像格式的发布&#xff0c;在当前几乎所有软件仅支持JPEG图像而不支持HEIC图像的环境下&#xff0c;这对Apple来说可能是一个巨大的挑战。不过&#xff0c;仍有一些方法可以为有需要的用户打开、查看、传输或转换iOS 11 HEIC 照片格式。本文将向您介绍 …

基于JAVA+SSM的教学资料管理系统

基于JAVASSM的教学资料管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈喽兄弟们&a…

stm32 移植RTL8201F(正点原子例程为例)

最近在工作中需要使用RTL8201F&#xff0c;在网上找了很多帖子&#xff0c;没有找到合适的&#xff0c;自己翻资料移植了一个。 模板工程使用的是正点原子的f407探索版的例程&#xff0c;原子使用的是LAN8720,需要把他的驱动修改成为我们自己用的RTL8201F。 1.将PHY_TYPE改成我…

RK3588+麒麟国产系统+FPGA+AI在电力和轨道交通视觉与采集系统的应用

工业视觉识别系统厂家提供的功能主要包括&#xff1a; 这些厂家通过先进的视觉识别技术&#xff0c;实现图像的采集、处理与分析。系统能够自动化地完成质量检测、物料分拣、设备监控等任务&#xff0c;显著提升生产效率和产品质量。同时&#xff0c;系统具备高度的灵活性和可扩…

Linux umami网站统计工具自定义API开发

Linux umami网站统计工具自定义API开发 一、src/queries/analytics/下添加调用sql查询文件&#xff1a;二、src/queries/index.js文件中增加导出模块内容&#xff1a;三、src/pages/api/下根据目录添加接口方法文件&#xff1a;四、构建项目&#xff0c;启动。1、到umami目录&a…

Meta 的新策略,将 AI 生成的角色整合到其社交媒体平台

一、Meta新年规划及引人注目的举措 多元规划背景&#xff1a;在新的一年&#xff0c;Meta制定了多维度的战略规划&#xff0c;旨在巩固并拓展其在科技领域的影响力。增强现实与元宇宙是其长期布局的重点方向&#xff0c;期望借此塑造未来互联网的交互形态&#xff1b;面对TikTo…

微信小程序滑动解锁、滑动验证

微信小程序简单滑动解锁 效果 通过 movable-view &#xff08;可移动的视图容器&#xff0c;在页面中可以拖拽滑动&#xff09;实现的简单微信小程序滑动验证 movable-view 官方说明&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/movable-view.ht…

SWM221系列芯片之电机应用及控制

经过对SWM221系列的强大性能及外设资源&#xff0c;TFTLCD彩屏显示及控制进行了整体介绍后&#xff0c;新迎来我们的电控篇---SWM221系列芯片之电机应用及控制。在微控制器市场面临性能、集成度与成本挑战的当下&#xff0c;SWM221系列芯片以其卓越性能与创新设计&#xff0c;受…

软考教材重点内容 信息安全工程师 第 12 章网络安全审计技术原理与应用

12.1.1 网络安全审计概念 网络安全审计是指对网络信息系统的安全相关活动信息进行获取、记录、存储、分析和利用的工作。网络安全审计的作用在于建立“事后”安全保障措施&#xff0c;保存网络安全事件及行为信息&#xff0c;为网络安全事件分析提供线索及证据&#xff0c;以便…

代码随想录算法训练营day21

代码随想录算法训练营 —day21 文章目录 代码随想录算法训练营前言一、669. 修剪二叉搜索树递归法迭代法 二、108.将有序数组转换为二叉搜索树递归法迭代法 三、538.把二叉搜索树转换为累加树递归法 总结 前言 今天是算法营的第21天&#xff0c;希望自己能够坚持下来&#xf…

Jetson系列部署YOLOv8模型教程

简介 NVIDIA Jetson系列是专为边缘计算设计的紧凑型计算模块&#xff0c;其目标用户为AI开发者、嵌入式系统工程师以及需要在设备端实时进行数据处理与AI推断的创新者。通过提供灵活的硬件平台&#xff0c;结合NVIDIA强大的GPU计算资源&#xff0c;Jetson系列能够支持复杂的机…

Python 3 与 Python 2 的主要区别

文章目录 1. 语法与关键字print 函数整数除法 2. 字符串处理默认字符串类型字符串格式化 3. 输入函数4. 迭代器和生成器range 函数map, filter, zip 5. 标准库变化urllib 模块configparser 模块 6. 异常处理7. 移除的功能8. 其他重要改进数据库操作多线程与并发类型注解 9. 总结…

word中编号统一格式

不要手敲编号&#xff0c;要利用工具来。要善于利用多级编号和编号&#xff0c;分别对标题和段落进行组织 尤其是段落和标题特别多的时候&#xff0c;像毕设、标书这些 为什么呢&#xff1f;因为这样更方便修改&#xff0c;后续的增加和删除段落&#xff0c;编号会自动排列&am…

MySQL8安装与卸载

1.下载mysql MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 2.解压mysql安装包 解压到自己定义的目录&#xff0c;这里解压就是安装&#xff0c;解压后的路径不要有空格和中文。 3.配置环境变量 配置环境变量可以方便电脑在任何的路径…