当前位置: 首页 > news >正文

数据结构之初始二叉树(1)

找往期文章包括但不限于本期文章中不懂的知识点:

个人主页:我要学编程(ಥ_ಥ)-CSDN博客

所属专栏:数据结构(Java版)

目录

树型结构

树的概念 

与树的有关概念

树的表示形式 

树的应用 

二叉树 

概念

两种特殊的二叉树  

二叉树的性质

有关二叉树的性质的练习 

二叉树的存储

二叉树的遍历

二叉树遍历的练习


树型结构

树的概念 

在正式学习二叉树之前,我们先来了解一下:数据结构中什么是树型结构。我们前面学习的顺序表、链表、栈、队列这些都是线性结构的。

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

左边是大自然中正常的树,右边是数据结构中的树。 

数据结构中的树具有以下的特点:

1、有一个特殊的结点,称为根结点,根结点没有前驱结点。

2、除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合Ti (1 <= i <= m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。总结就是一句话:子树与子树之间不能有相交的部分,相交了就不能称之为树了。

3、树是递归定义的。

4、除了根结点外,每个结点有且仅有一个父结点。

5、一棵N个结点的树有N-1条边。

与树的有关概念

重点掌握:

结点的度:一个结点所含的子树的个数,也就是一个节点多少条边。

树的度:因为树有多个结点,因此树结点就是整个树中  所有 结点的度 的最大值。

叶子结点或终端结点:度为0的点,也就是没有边的点。

双亲结点或父结点:若一个结点A含有子结点B,则称该节点A为父结点。

孩子结点或子结点:若一个结点A含有子结点B,则称该节点B为子结点。

根结点:一棵树中,没有 双亲结点 的 结点,就是最上面的那个结点。

结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推。

树的高度或深度:树中结点的最大层次,其实就是从根节点到叶子结点之间的最大值。

了解即可:

非终端结点或分支结点:度不为0的结点。

兄弟结点:具有相同 父结点 的 结点 互称 为兄弟结点。

堂兄弟结点:双亲在同一层的结点,它们的子结点 互为 堂兄结点。

结点的祖先:从根到该结点所经分支上的所有结点,都称为该结点的祖先。

子孙:以某结点为根的子树中任一结点都称为该结点的子孙。

森林:只要是能构成树的结点,就可以称为森林。例如:一颗树有一个节点,那么构成这棵树的这个结点也可以称为森林。

树的表示形式 

树的结构相对线性表就比较复杂了,要存储表示起来就比较麻烦,实际中树有很多种表示方式,如:双亲表示法, 孩子表示法、孩子双亲表示法、孩子兄弟表示法等等。我们这里就简单的了解其中最常用的孩子兄弟表示法。 顾名思义:这个节点中可以储存其孩子和兄弟:

class Node {int value; // 树中存储的数据Node firstChild; // 第一个孩子引用Node nextBrother; // 下一个兄弟引用
}

如下图所示: 

树的应用 

我们电脑的磁盘目录就是用的树这种数据结构。

二叉树 

概念

二叉树是 结点的 一个有限集合,该集合: 1. 要么为空,即没有一个节点 2. 要么是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。就像下面这样:

从上图可以看出:

1. 二叉树不存在度大于2的结点。(结点的度是指一个结点所含的边的条数,也就是子树的个数)

2. 二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树。 

对于任意的二叉树都是由以下几种情况复合而成的:

两种特殊的二叉树  

满二叉树:一棵二叉树每层的结点数都达到最大值,则这棵二叉树就是满二叉树,如果一棵 二叉树的层数为K,且结点总数是 2^k -1,则它就是满二叉树。例:

当然这里可能会有一个误区:有小伙伴可能会认为:只要一棵二叉树 只存在度为0 和 度为2 的结点,那么这棵树就是满二叉树。这个观点是不正确的。如下图所示:

完全二叉树:一棵二叉树的所有结点都是从上到下、从左到右依次存在的,这样的二叉树就被称为完全二叉树。例: 

注意:满二叉树也是一种完全二叉树。因为满二叉树也满足完全二叉树的定义。 

二叉树的性质

1. 若规定根结点的层数为1,则一棵非空二叉树第i层上最多有 2^(i-1) (i>0)个结点。例:

2. 若规定只有根结点的二叉树的深度为1(也就是说根是第1层),则深度为K的二叉树的最大结点数是 (2^k) - 1(k>=0) 。这里求的总的结点个数,也可以通过上图看出。其实也就是一个等比数列的求和问题。

3. 具有n个结点的完全二叉树的深度k为 log2 (N+1)(log以2为底,N+1的对数) 向上取整。这个公式就是根据 第2点 反推出来的。下面会有例子证明这个向上取整的意思。

4. 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的顺序对所有节点从0开始编号,则对于序号为 i 的结点有:

若 i > 0,双亲(父亲结点)序号:(i-1)/2;i=0,i 为根结点编号,无双亲结点。

若2i+1 < n,则左孩子序号为:2i + 1;2i+1 >= n,则无左孩子。

若2i+2 < n,则右孩子序号为:2i + 2;2i+2 >= n,则无右孩子。

例如:

5. 对于任意一棵二叉树,如果其叶子节点的个数为 n0,度为2的节点个数为 n2 ,则n0 = n2 + 1。即:度为0的结点的个数(叶子结点) 等于 度为2的结点的个数+1 

推导过程如下:

有关二叉树的性质的练习 

1.某二叉树共有399个结点,其中有199个度为2的结点,则该二叉树中的叶子结点数为()
A 不存在这样的二叉树  B 200  C 198  D 199

答案:B

解析:根据前面的结论:叶子结点的个数比度为2的结点的个数多1,可知为200,选B

2.在具有2n个结点的完全二叉树中,叶子结点个数为() 
A n个  B (n+1)个  C (n-1)个  D (n/2)个

答案:A

解析:图解法:

3.一个具有767个节点的完全二叉树,其叶子节点个数为()
A 383个  B 384个  C 385个  D 386个

答案:B

解析:由上图可知,叶子结点的个数为 (767+1) / 2 = 384。选B。

4.一棵完全二叉树的节点数为531个,那么这棵树的高度为()
A.11  B.10  C.8  D.12

答案:B

解析:log2 (531+1) > log2 512 = 9,向上取整就是10.

二叉树的存储

二叉树的存储结构分为:顺序存储和类似于链表的链式存储。

顺序存储在后面学习。

二叉树的链式存储是通过一个一个的节点引用起来的,常见的表示方式有二叉和三叉表示方式,具体如下:

// 孩子表示法
class Node {int val; // 数据域Node left; // 左孩子的引用,常常代表左孩子为根的整棵左子树Node right; // 右孩子的引用,常常代表右孩子为根的整棵右子树
}// 孩子双亲表示法
class Node {int val; // 数据域Node left; // 左孩子的引用,常常代表左孩子为根的整棵左子树Node right; // 右孩子的引用,常常代表右孩子为根的整棵右子树Node parent; // 当前节点的根节点
}

孩子双亲表示法后序在平衡树位置介绍,本文采用孩子表示法来构建二叉树。 

二叉树的遍历

二叉树有四种遍历方式:前序遍历、中序遍历、后序遍历、层次遍历。

前序遍历(先序遍历):就是先遍历根结点,再遍历左子树,最后再遍历右子树。

中序遍历:就是先遍历左子树,再遍历根结点,最后再遍历右子树。

后序遍历:就是先遍历左子树,再遍历右子树,最后再遍历根结点。

层序遍历:就是从上到下、从左到右依次遍历根结点。

根据上述概念,我们不难发现遍历根节点的顺序不同,遍历方式也就有了区别。

先遍历根结点就是前序遍历。不管是哪个遍历,一定是左子树在前,右子树在后。

二叉树遍历的练习

1、下面二叉树的四种遍历方式: 

先序遍历:根->左子树->右子树。打印结果:A->B->D->E->C->F->G 

中序遍历:左子树->根->右子树。打印结果:D->B->E->A->F->C->G

后序遍历:左子树->右子树->根。打印结果:D->E->B->F->G->C->A

层序遍历:从上到下、从左到右,依次打印根结点。打印结果:A->B->C->D->E->F->G

根据上面的遍历结果,我们也可以发现一些关于遍历的性质:

1、先序遍历一定会先打印整棵树的根结点,其次再是打印左子树的根节点,依次遍历下去。而后续遍历往往与其相反,最后才打印整棵树的根结点。

2、中序遍历的根结点一定是在中间的,通过后续遍历或者前序遍历确定了根结点之后,在根结点左边的就是根结点的左子树,在根结点右边的就是根结点的右子树。

有了上面这些性质,我们就可以更加迅速的把下面的题目给写完了。

2、某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为()

A: ABDHECFG        B: ABCDEFGH        C: HDBEAFCG        D: HDEBFGCA

答案:A

解析:

由题意知:该树为完全二叉树,因此就可以确定该树的图形如上所示:
前序遍历:A->B->D->H->E->C->F->G

2、二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG.则二叉树根结点为()

A: E        B: F       C: G       D: H

答案:A

解析:根据先序遍历可以确定整棵树的根结点,即E,又因为中序遍历已知根结点,可以确定整棵树的左子树和右子树,则这棵树的图形如下所示:

3、设一棵二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树前序遍历序列为()

A: adbce         B: decab         C: debac         D: abcde

答案:D

解析:根据后序遍历可以确定整棵树的根结点,即a,又因为中序遍历已知根结点,可以确定整棵树的左子树和右子树,则这棵树的图形如下所示:

4、某二叉树的后序遍历序列与中序遍历序列相同,均为 ABCDEF ,则按层次输出(同一层从左到右)的序列为()

A: FEDCBA         B: CBAFED         C: DEFCBA         D: ABCDEF

答案:A

解析:根据后序遍历可以确定整棵树的根结点,即F,又因为中序遍历已知根结点,可以确定整棵树的左子树和右子树,则这棵树的图形如下所示:

好啦!本期 数据结构之初始二叉树(1)的学习之旅就到此结束啦!本期文章主要是了解一些概念与遍历的方式,下一期我们就会开始代码的练习了。我们下一期再一起学习吧!

相关文章:

数据结构之初始二叉树(1)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 树型结构 树的概念 与树的有关概念 树的表示形式 树的应用 二叉树 概念 两种特殊的…...

利用Python爬虫按图搜索淘宝商品(拍立淘)

在当今数字化时代&#xff0c;能够通过图片搜索商品的功能&#xff08;如淘宝的“拍立淘”&#xff09;为用户提供了极大的便利。本文将详细介绍如何利用Python爬虫技术实现按图搜索淘宝商品&#xff0c;并提供相应的代码示例。 1. 拍立淘功能简介 “拍立淘”是淘宝提供的一项…...

微信小程序中使用miniprogram-sm-crypto实现SM4加密攻略

在微信小程序开发过程中&#xff0c;数据安全至关重要。本文将为大家介绍如何在微信小程序中使用miniprogram-sm-crypto插件进行SM4加密&#xff0c;确保数据传输的安全性。 一、SM4加密简介 SM4是一种对称加密算法&#xff0c;由国家密码管理局发布&#xff0c;适用于商密领…...

基于注解的方式实现分布式锁的AOP功能

使用场景&#xff1a; 在分布式项目中&#xff0c;涉及到事务&#xff0c;且会操作多张表&#xff0c;那么涉及到并发场景&#xff0c;应当避免同一时间有多个用户并发操作同一份数据&#xff0c;例如&#xff1a;商品秒杀。 解决方案&#xff1a; 使用Around注解实现在方法…...

22. 五子棋小游戏

文章目录 概要整体架构流程技术名词解释技术细节小结 1. 概要 &#x1f50a; JackQiao 对 米粒 说&#xff1a;“今天咱们玩个五子棋小游戏&#xff0c;电脑与你轮流在一个 nn 的网格上放置棋子&#xff08;X 或 O&#xff09;&#xff0c;网格由你输入的正整数n决定&#xff0…...

import是如何“占领满屏“

import是如何“占领满屏“的&#xff1f; 《拒绝使用模块重导&#xff08;Re-export&#xff09;》 模块重导是一种通用的技术。在腾讯、字节、阿里等各大厂的组件库中都有大量使用。 如&#xff1a;字节的arco-design组件库中的组件&#xff1a;github.com/arco-design… …...

传奇996_53——后端ui窗口局部刷新

描述&#xff1a;一个大窗口&#xff0c;点击某个键&#xff0c;弹出小窗口。 小窗口中将msg存进变量中 大窗口中判断一个参数是否为null&#xff0c;如果不为null&#xff0c;说明界面不是第一次打开&#xff0c;而是被刷新了。就加上小窗口的那个变量 有时小窗口中还有其他…...

云原生API网关:2024年的性能与智能化突破

API网关已经成为现代应用世界的流量控制器&#xff0c;并正在成为现代应用架构的重要组成部分。然而&#xff0c;自成立以来&#xff0c;他们的角色发生了巨大变化。它们正在减轻重量&#xff0c;变得更加可编程&#xff0c;并与云原生环境携手合作。 让我们来探索这一激动人心…...

专题二十五_动态规划_两个数组的 dp (含字符串数组)_算法专题详细总结

目录 动态规划_两个数组的 dp &#xff08;含字符串数组&#xff09; 1. 最⻓公共⼦序列&#xff08;medium&#xff09; 解析&#xff1a; 1. 状态表⽰&#xff1a; 2. 状态转移⽅程&#xff1a; 3. 初始化&#xff1a;​编辑 4. 填表顺序&#xff1a;​编辑 5. 返回值…...

day09 接口测试(5)——使用postman 完成项目实战

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、项目简介 2、技术栈 2.1 技术栈 2.2 技术架构图 3、初始化项目环境&#xff01;&#xff01;&#xff01; 3.1 新建用例集 3.2 创建环境变量 3.3 登录模块 3.3.1 从测试用例文档提取数据 3.3.2…...

【Solidity】变量详解:类型、作用域与最佳实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Solidity变量详解&#xff1a;类型、作用域与最佳实践引言1. 变量的类型与声明1…...

知识图谱9:知识图谱的展示

1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具&#xff0c;适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言&#x…...

scss文件内引入其他scss文件报错

1、今天在编译一些老项目的时候&#xff0c;老是提示下面信息 2、而且有很多Sass import rules are deprecated and will be removed in Dart Sass 3.0.0.警告 3、用npm view sass versions看&#xff0c;其中sass的最新版本是1.82.0 4、经过测试"sass": "1.75…...

使用 ASP.NET Core HttpLoggingMiddleware 记录 http 请求/响应

我们发布了一个应用程序&#xff0c;该应用程序运行在一个相当隐蔽的 WAF 后面。他们向我们保证&#xff0c;他们的产品不会以任何方式干扰我们的应用程序。这是错误的。他们删除了我们几乎所有的“自定义”标头。为了“证明”这一点&#xff0c;我构建了一个中间件&#xff0c…...

沃丰科技智能客服在跨境电商独立站中的核心角色

随着全球化进程的加速和互联网技术的不断发展&#xff0c;跨境电商行业蓬勃兴起&#xff0c;为消费者提供了更广阔、更便捷的购物选择。在这样一个竞争激烈的市场环境中&#xff0c;优质的客户服务成为了企业脱颖而出的关键。沃丰科技智能客服凭借其先进的技术和人性化的设计理…...

基于Springboot滑雪物品在线租赁网站设计与实现(作品+论文+开题报告)

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…...

android 富文本及展示更多组件

模拟微博 #热贴 和 用户 的这种 富文本形式组件&#xff0c;不说了&#xff0c; 直接上代码 package com.tongtong.feat_watch.viewimport android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater impo…...

Java-JMX 组件架构即详解

JMX架构由三个主要组件构成&#xff1a; ‌MBeans&#xff08;Managed Beans&#xff09;‌&#xff1a;代表可管理的资源&#xff0c;是JMX的核心。MBean可以是Java类或接口&#xff0c;提供了管理操作的接口&#xff0c;如获取系统信息、设置参数等。‌MBeanServer‌&#x…...

开源轻量级文件分享服务Go File本地Docker部署与远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Rust快速入门(五)

生命周期 生命周期的主要作用是避免悬垂引用。 这里我们详细说说借用检查&#xff1a; {let r; // ----------- a// |{ // |let x 5; // --- b |r &x; // | |} /…...

租赁系统|租赁小程序|租赁小程序成品

租赁系统是现代企业管理中不可缺少的数字化工具&#xff0c;它通过高效的信息整合与流程管理&#xff0c;为企业带来极大的便利和效益。一个完善的租赁系统开发应具备以下必备功能&#xff1a; 一、用户管理 用户管理模块负责系统的访问控制&#xff0c;包括用户注册、登录验证…...

后端-pageHelp分页查询

在pom.xml文件中先导入分页的坐标 PageResult里面有两个后端返回给前端的参数&#xff0c;我们最后把PageResult再封装到Result中&#xff0c; PageResult和Result都是工具类 EmployeeDTO中是前端页面中的模糊查询字段和分页的两个值 注意&#xff01; 括号中的参数Employee…...

MySQL | 尚硅谷 | 第15章_存储过程与函数

MySQL笔记&#xff1a;第15章_存储过程与函数 文章目录 MySQL笔记&#xff1a;第15章_存储过程与函数第15章_存储过程与函数 1. 存储过程概述1.1 理解1.2 分类 2. 创建存储过程2.1 语法分析2.2 代码举例 3. 调用存储过程3.1 调用格式3.2 代码举例3.3 如何调试存储过程演示代码 …...

汽车零部件设计之——麦弗逊悬架KC特性分析仿真APP介绍

汽车零部件是汽车工业的基石&#xff0c;是构成车辆的基础元素。一辆汽车通常由上万件零部件组成&#xff0c;包括发动机系统、传动系统、制动系统、电子控制系统等&#xff0c;它们共同确保了汽车的安全、可靠性及高效运行。在汽车产业快速发展的今天&#xff0c;汽车零部件需…...

代码随想录-算法训练营day41(动态规划04:01背包,01背包滚动数组,分割等和子集)

第九章 动态规划part04● 01背包问题&#xff0c;你该了解这些&#xff01; ● 01背包问题&#xff0c;你该了解这些&#xff01; 滚动数组 ● 416. 分割等和子集 正式开始背包问题&#xff0c;背包问题还是挺难的&#xff0c;虽然大家可能看了很多背包问题模板代码&#xf…...

Vue Loader的作用

Vue Loader是一个专门用于处理Vue单文件组件&#xff08;SFCs&#xff0c;即Single File Components&#xff09;的webpack加载器&#xff08;loader&#xff09;。以下是Vue Loader的具体作用&#xff1a; 1、解析和转换Vue单文件组件 Vue Loader能够解析和转换.vue文件&…...

SRS 服务器入门:实时流媒体传输的理想选择

在当今视频流媒体需求爆炸式增长的时代&#xff0c;如何选择一款高效、稳定且功能强大的流媒体服务器成为了许多开发者和企业关注的焦点。而 SRS&#xff08;Simple Realtime Server&#xff09;作为一款开源的流媒体服务器&#xff0c;以其卓越的性能和灵活的功能&#xff0c;…...

4K高清壁纸网站推荐

1. Awesome Wallpapers 官网: https://4kwallpapers.com/ 主题: 创意、摄影、人物、动漫、绘画、视觉 分辨率: 4K Awesome Wallpapers 提供了丰富的高质量图片&#xff0c;分为通用、动漫、人物三大类&#xff0c;可以按屏幕比例和分辨率检索&#xff0c;满足你对壁纸的各种…...

如何保证数据库和缓存双写一致性?

数据库和缓存&#xff08;redis&#xff09;双写数据一致性问题再高并发的场景下&#xff0c;是一个很严重的问题&#xff0c;无论在工作中&#xff0c;还是面试&#xff0c;遇到的概率非常大&#xff0c;这里就聊一聊目前的常见解决方案以及最优方案。 常见方案 缓存的主要目…...

QT 多级嵌套结构体,遍历成员--半自动。<模板+宏定义>QTreeWidget树结构显示

Qt的QTreeWidget来显示嵌套结构体的成员&#xff0c;并以树形结构展示。 #include <QApplication> #include <QTreeWidget> #include <QTreeWidgetItem> #include <QString> #include <cstdint>// 假设这些是你的结构体定义 struct BaseMeterPa…...

《深入浅出HTTPS》读书笔记(17):公开密钥算法

公开密钥算法&#xff08;Public Key Cryptography&#xff09;&#xff0c;也称为非对称加密算法&#xff08;Asymmetrical Cryptography&#xff09;。 公开密钥算法的功能比较多&#xff0c;可以进行加密解密、密钥协商、数字签名。 【密钥是一对】 公开密钥算法的密钥是一对…...

React 中为什么不直接使用 requestIdleCallback?

首先看下 requestIdleCallback是什么&#xff1f; 简介 requestIdleCallback 是一个在浏览器空闲时执行低优先级任务的 API。 定义与用途 requestIdleCallback 方法允许开发者在浏览器的空闲时段内调度函数的执行。这些函数通常用于执行非关键性的、低优先级的任务&#xff0c…...

工作:SolidWorks从3D文件导出2D的DWG或DXF类型文件方法

工作&#xff1a;SolidWorks从3D文件导出2D的DWG或DXF类型文件方法 SolidWorks从3D文件导出2D的DWG或2D DXF类型文件方法&#xff08;一&#xff09;打开3D文件&#xff08;二&#xff09;从装配体到工程图&#xff08;三&#xff09;拖出想要的角度的图型&#xff08;四&#…...

element-ui radio和checkbox禁用时不置灰还是原来不禁用时的样式

把要紧用的内容加上一个class"notEdit-page" z注意要在style里面写不能加上scoped /*//checkBox自定义禁用样式*//*//checkBox自定义禁用样式*/ .notEdit-page.el-checkbox__input.is-disabled.is-checked.el-checkbox__inner::after {border-color: #fff; } .notEdi…...

MySQL 8.0 安装与配置技术文档(Ubuntu22.04)

MySQL 8.0 安装与配置技术文档 目录 环境准备下载 MySQL 安装包检查是否已安装 MySQL彻底卸载 MySQL安装 MySQL配置 MySQL创建用户并允许外网访问修改 root 用户密码参考链接 1. 环境准备 确保系统为 Ubuntu 22.04&#xff0c;并安装了以下基础工具&#xff1a; sudo apt-ge…...

【Linux】Ubuntu中安装多个版本的gcc、g++编译器,并自由切换

1、安装 1.1 命令安装 使用命令直接安装: sudo apt install gcc-[版本号] sudo apt install g++-[版本号]例如: sudo apt install gcc-10 sudo apt install g++-10 sudo apt install gcc-9 sudo apt install g++-9 sudo apt install gcc-8 sudo apt install g++-81.2 源码…...

uni-app登录界面样式

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"screen"><view class"…...

如何在小米平板5上运行 deepin 23 ?

deepin 23 加入了 ARM64 支持&#xff0c;这里尝试将 deepin 系统刷入平板中&#xff0c;平常使用中&#xff0c;带个笔记本电脑有时候也会嫌比较麻烦&#xff0c;把 Linux 系统刷入平板中既满足了使用需要&#xff0c;又满足了轻便的需求。为什么不使用 Termux &#xff1f;虽…...

Linux上的C语言编程实践

说明&#xff1a; 这是个人对该在Linux平台上的C语言学习网站笨办法学C上的每一个练习章节附加题的解析和回答 ex1: 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后运行它看看发生了什么。 vim ex1.c打开 ex1.c 文件。假如我们删除 return 0…...

ubuntu中使用ffmpeg库进行api调用开发

一般情况下&#xff0c;熟悉了ffmpeg的命令行操作&#xff0c;把他当成一个工具来进行编解码啥的问题不大&#xff0c;不过如果要把功能集成进自己的软件中&#xff0c;还是要调用ffmpeg的api才行。 ffmpeg的源码和外带的模块有点太多了&#xff0c;直接用官网别人编译好的库就…...

基于yolov8的SAR影像目标检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

更多目标检测、图像分类识别、目标追踪等项目可看我主页其他文章 功能演示&#xff1a; 基于yolov8的SAR影像目标检测系统&#xff0c;支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov8的SAR影像目标…...

【源码】Sharding-JDBC源码分析之SQL中读写分离动态策略、数据库发现规则及DatabaseDiscoverySQLRouter路由的原理

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...

服务器卸载安装的 Node.js

卸载安装的 Node.js 版本&#xff0c;具体步骤取决于你是通过包管理器&#xff08;如 yum 或 dnf&#xff09;安装的&#xff0c;还是通过 nvm (Node Version Manager) 安装的。以下是针对这两种情况的指南。 通过包管理器卸载 Node.js 如果你是通过 yum 或 dnf 安装的 Node.…...

一键图片提取表格导出为Excel文档工具体验

在日常工作中&#xff0c;我们经常会遇到需要将图片中的表格数据转换为可编辑的Excel文件的情况。这不仅能够提高工作效率&#xff0c;还能减少手动输入数据的错误。本文将介绍一款实用的工具&#xff0c;它能够帮助我们快速实现图片到Excel的转换&#xff0c;同时保持操作的简…...

SpringBoot异常处理

SpringBoot异常处理 一、认识异常 异常分类&#xff1a; Error: 代表编译和系统错误&#xff0c;不允许捕获Exception: 标准Java库的方法所激发的异常&#xff0c;包含运行异常Runtime_Exception和非运行异常 Non_RuntimeException 的子类Runtime_Exception: 运行时异常。No…...

在 OAuth 2.0 中,refreshToken(刷新令牌)存在的意义

在 OAuth 2.0 中&#xff0c;refreshToken&#xff08;刷新令牌&#xff09; 的主要目的是为了提升用户体验和安全性&#xff0c;同时确保访问令牌的有效性。以下是需要使用 refreshToken 的原因&#xff1a; 1. 访问令牌的有限生命周期 访问令牌&#xff08;accessToken&…...

【Redis】壹 —— Redis 介绍

文章目录&#xff1a; 前言 一、认识Redis 1. Redis 用途 作为数据库 作为流引擎 二、服务端高并发分布式结构演变 1. 单机架构 2. 应用数据分离架构 3. 应用服务集群架构 4. 读写分离 / 主从分离架构 5. 冷热分离 —— 引入缓存 6. 分库分表 7. 微服务架构 8. …...

【html网页页面010】html+css制作茶品牌文创网页制作含视频元素(7页面附效果及源码)

茶主题品牌文创网页制作 &#x1f964;1、写在前面&#x1f367;2、涉及知识&#x1f333;3、网页效果完整效果(7页)&#xff1a;代码目录结构&#xff1a;page1、主页page2、精品包装page3、茶园一角page4、品牌地带page5、衍生品page6、联X我们page7、视频详情页 &#x1f30…...

【项目实战】基于python+爬虫的电影数据分析及可视化系统

注意&#xff1a;该项目只展示部分功能&#xff0c;如需了解&#xff0c;文末咨询即可。 本文目录 1.开发环境2 系统设计 2.1 设计背景2.2 设计内容 3 系统页面展示 3.1 用户页面3.2 后台页面3.3 功能展示视频 4 更多推荐5 部分功能代码 5.1 爬虫代码5.2 电影信息代码 1.开发环…...

K8S命令部署后端(流水线全自动化部署)

前言 本文为链接: 云效流水线k8s半自动部署java&#xff08;保姆级&#xff09;的补充,本文起初的目的是为了补充完善k8s流水线的全自动化部署,但是也适用于k8s的一键重启,因为使用k8s的web页面容易出现漏点的情况,因此也可以把代码保存为shell脚本,同样可以实现一键重启。关于…...