自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 javaWeb Pinia

/ 理解: store类似Java中的实体类, id就是类名, state 就是装数据值的属性 getters就是get方法,actions就是对数据操作的其他方法。// 内部包含四个属性: id 唯一标识 state 完整类型推理,推荐使用箭头函数 存放的数据 getters 类似属性计算,存储放对数据。用于定义一些通过数据计算而得到结果的一些方法 一般在此处不做对数据的修改操作。// 操作的方法 actions 存储数据的复杂业务逻辑方法。// store就是定义共享状态的包装对象。

2025-04-02 16:19:36 280

原创 javaWeb axios

作用于node.js 和浏览器中。它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。如果想在axios发送请求之前,或者是数据响应回来在执行then方法之前做一些额外的工作,可以通过拦截器完成。Axios 是一个基于 promise 的。从 node.js 创建 http 请求。范围内的状态码都会触发该函数。范围的状态码都会触发该函数。

2025-04-02 16:18:56 517

原创 javaWeb Promise

Promise对象的状态改变,只有两种可能:从`Pending`变为`Resolved`和从`Pending`变为`Rejected`。(1)Promise对象代表一个异步操作,有三种状态:`Pending`(进行中)、`Resolved`(已完成,又称 Fulfilled)和`Rejected`(已失败)。3. await会等右边的promise对象执行结束,然后再获取结果,后续代码也会等待await的执行(但是await所在函数之外的代码不会等待await的执行),从它可以获取异步操作的消息。

2025-04-02 16:17:21 515

原创 javaWeb Router

在 Vue 3 中,路由守卫是用于在路由切换期间进行一些特定任务的回调函数。路由守卫可以用于许多任务,例如验证用户是否已登录、在路由切换前提供确认提示、请求数据等。在 Vue 3 和 Vue Router 4 中,可以使用 `useRoute` 这个函数从 Vue 的组合式 API 中获取路由对象。+ 例如: 查看数据详情 `/showDetail/1` ,`1`就是要查看详情的id,可以动态添值!- 通俗理解:路由就像是一个地图,我们要去不同的地方,需要通过不同的路线进行导航。

2025-03-28 21:09:21 886

原创 javaWeb vue的简单语法

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。+ 总的来说,`v-if` 有更高的切换开销,而 `v-show` 有更高的初始渲染开销。子组件从vue包中导入defineEmits,并且通过defineEmits的方法,创建emites实例,函数内调用对应属性,并将函数绑定在temp标签中的的button标签内。也就是说,如果在父组件中的传递的值发生了改变,子组件中的值也会相应地更新。

2025-03-28 21:06:35 305

原创 javaWeb es6语法

深拷贝,新的数组在内存上独立创建一个空间,修改新的拷贝数据时对原有的数据(被拷贝数据)不作修改。2、并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。并且是由箭头函数定义时的上下文来决定的,而不是由函数调用时的上下文来决定的。解构赋值的语法使用花括号 `{}` 表示对象,方括号 `[]` 表示数组。在js资源文件的尾部统一写上 export{需要导入的资源1,资源2,…Import {需要导入的资源1,资源2,…对应数组和对象元素修改,不算常量修改,修改值,不修改地址。

2025-03-28 11:24:13 711

原创 JavaWeb 监听器

另外还有一个方法可以获取到当前Web应用的ServletContext对象。| valueUnbound(HttpSessionBindingEvent event) | 该类的实例从Session中移除时调用 || requestInitialized(ServletRequestEvent sre) | ServletRequest对象创建时调用 || valueBound(HttpSessionBindingEvent event) | 该类的实例被放到Session域中时调用 |

2025-03-28 11:19:27 742

原创 javaWeb Filter

一个web项目中,可以同时定义多个过滤器,多个过滤器对同一个资源进行过滤时,工作位置有先后,整体形成一个工作链,称之为过滤器链。+ Filter的doFilter方法可以控制请求是否继续,如果放行,则请求继续,如果拒绝,则请求到此为止,由过滤器本身做出响应。和Servlet的生命周期类似,略有不同,没有servlet的load-on-startup的配置,默认就是。+ 每个过滤器过滤的范围不同,针对同一个资源来说,过滤器链中的过滤器个数可能是不同的。+ Filter是GOF中责任链模式的典型案例。

2025-03-18 20:04:50 828

原创 JavaWeb 会话管理

的一种技术,服务器会为每一个客户端开辟一块内存空间,即session对象. 客户端在发送请求时,都可以使用自己的session. 这样。+ 服务端在为客户端创建session时,会同时将session对象的id,即JSESSIONID以cookie的形式放入响应对象。| void setAttribute(String name,String value) | 向域对象中添加/修改数据 |+ 客户端下一次请求时携带JSESSIONID,后端收到后,根据JSESSIONID找到对应的session对象。

2025-03-18 20:04:14 818

原创 JavaWeb Servlet

API | 功能解释 |域对象: 一些用于存储数据和传递数据的对象,传递数据不同的范围,我们称之为不同的域,不同的域对象代表不同的域,共享数据的范围也不同---------------------在一定范围内能对数据库进行存储传输的对象。| 向客户端响应错误信息的方法,需要指定响应码和响应信息 |

2025-03-05 10:22:54 785

原创 JavaWeb HTTP协议

当前页面的上一个页面的路径[当前页面通过哪个页面跳转过来的]: 可以通过此路径跳转回上一个页面, 广告计费,防止盗链。长连接可以在创建连接后,把多个需要传输的文件都完成传输之后,再关闭连接,减少连接次数,节省资源提高效率。-请求协议的自动升级[http的请求,服务器却是https的,浏览器自动会将请求协议升级为https的]请求数据在请求体中携带,请求体数据大小没有限制,可以用来上传所有内容。405 请求的方式不允许 get/post请求方式的错误。)由于请求参数在请求首行中已经携带了,所以。

2025-03-05 10:18:34 708

原创 JavaWeb Tomcat

上下文路径中不需要加入ROOT,默认可以进入index.jsp 在文件中进行修改,则最终呈现效果也发生相应的改变。-- path可设置为别名(项目的上下文路径,在搜索栏中输入的部分),docBase为项目的实际路径 -->WEB-INF保存的文件无法通过浏览器直接访问,但可以通过请求转发访问。原本的信息,仅仅存放和要部署的项目相关的配置文件),在副本中完成。4.使用idea将构建好的app部署到Tomcat中,启动运行。关于项目的部署,除了建立项目的常规部署之外,还可以;

2025-03-05 10:17:42 629

原创 JavaWeb XML

我们使用XML,只需要基于第三方应用程序和已提供框架的配置文件进行修改。XML存在约束,可以自定义但也存在书写规则,一般不需要逐行书写。③xml是有约束的,约束用于限定xml内部能编写的内容。是配置文件,用于存储一些配置信息,作用类似于。- 属性值必须加引号,单双都行。3.必须顶格书写,前面不能有空格符号。标签名、属性名建议使用小写字母。Attribute 属性结点。XML:可扩展自定义标记语言。- 属性必须有值。2、XML的存在意义和用法。Element 元素结点。3、常见配置文件的类型。

2025-03-05 10:16:30 512

原创 触发器与MySQL8.0新特性

触发器一、触发器的概述触发器是由事件来触发某个操作。事件包括INSETR、 UPDATE、DELETE。当对数据表中的数据执行插入、更新、删除的时候,需要自动执行一些数据库逻辑的时候,可以使用触发器。二、触发器的创建(1)(2)触发器的创建与使用(3)删除触发器三、触发器的优点与缺点(1)触发器的优点(2)触发器的缺点MySQL8.0新特性1、更简便的MySQL支持2、更好的索引3、更完善的JSON支持4、安全和账户管理5、InnoDB6、数据字典7、原子数据定义语句。

2025-02-19 08:59:43 309

原创 变量、流程控制与游标

函数的功能可以实现累加薪资最高的几个员工的薪资值,直到薪资总和达到limit_total_salary参数的值,返回累加的人数给total_count。这句的作用是使用 游标名所指向的游标来读取当前行,并且将数据保存到 var_name 这个变量中,游标指针指到下一行。当我们定义好游标之后,如果想要使用游标,必须先打开游标。打开游标的时候 SELECT 语句的查询结果集就会送到游标工作区,为后面游标逐条读取结果集中的记录做准备。处理语句:如果出现上述条件之一,则采用对应的处理方式,并执行指定的处理语句。

2025-02-19 08:57:01 916

原创 存储过程与存储函数

写在INOUT之后的参数,在赋值、调用时作用为参数,查询时作用为返回值。存储函数可以放在查询语句中使用,存储过程不行。DROP PROCEDURE 存储过程名;存储过程没有返回值,区别于函数。一组预先编译的SQL语句的封装。存储体中需要使用到传入的参数。四、存储过程或存储函数的优缺点。三、存储过程与存储函数的对比。1、可以一次编译多次使用。4、修改存储过程的特性。存储过程功能更加强大。2、可以减少开发工作量。4、可以减少网络传输量。4、不适合高并发的场景。3、存储过程安全性强。5、具有良好的封装性。

2025-02-09 22:16:27 314

原创 常见数据库对象与视图VIEW

⑤在定义视图的SELECT语句后的字段列表中使用 DISTINCT 、 聚合函数 、 GROUP BY 、 HAVING 、UNION 等,视图将不支持INSERT、UPDATE、DELETE;视图是向用户提供基表数据的一种表现形式,一般情况下,小型项目的数据库可以不使用视图,但大型项目中,视图具有无可替代的价值。(1)如果数据表的变更了,我们需要及时对相关的视图进行相关的维护。视图可以帮助我们使用表的一部分,针对不同的用户制定不同的查询视图。对视图作出的修改,相当于在表中作出修改,可以得到及时的反馈。

2025-02-07 23:25:48 463

原创 数据完整性与约束的分类

即使删除了已经创建的自增列的数据,并且重启MySQL,仍然从已经创建的自增列数据开始向后偏移,而不是从表中已有的数据开始向后偏移。NOT NULL非空约束修饰的字段,不能写入NULL,(在没有设置默认值的情况下)默认值为NULL,所以也不能 不写入数据。需要注意,此时使用MODIFY进行修改,如果原本存在其他约束例如非空约束,需要保留写下,否则视为删除。修改约束的时候,要注意修改之后的约束与表中已经存在的数据不能相悖,否则修改失败。①非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空。

2025-02-07 23:25:08 634

原创 MySQL数据类型

只是无须再用字符 0 进行填充。(4)VARCHAR是可变长字符串,不会预先分配存储空间,长度不要超过5000,如果存储长度大于此值,定义字段类型为TEXT,独立出来一张表,用主键对应,避免影响其他字段索引效率。MySQL5.0之后,VARCAHR(M)中存储的从M个字节(如果使用utf8字符集则为6个汉字,应该汉字占3字节)变为M个字符(一个汉字占用一个字符)。存储的时间范围比DATETIME小很多,只能从1970-01-01 00:00:01到2038-01-19 03:14:07 UTC之间的时间。

2025-02-03 11:00:30 767

原创 数据的添加、更新与删除

②填入数据时,自己指明字段结构,依据就近的字段结构进行数据的填写。如果有字段创建表时存在但填入数据时没有进行填写,默认值为NULL。补充:可以一次性添加多条数据,填入数据的形式必须遵循前两条的要求。DML操作默认情况下,执行完之后不会自动提交数据。①根据创建表的字段结构,依次填入数据。插入的字段与选择的字段应当一一匹配。更新数据可能失败,失败原因:约束。(2)根据已有的数据进行迁移。四、MySQL新特性:计算列。

2025-02-03 10:59:13 243

原创 数据库和数据表的创建、修改、与删除

1.标识符命名规则数据库名、表名不得超过30个字符,变量名限制为29个必须只能包含A-Z,a-z,0-9,_共63个字符数据库名、表名、字段名等对象名中间不能包含空格同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名。字段和保留字、常用方法冲突时,必须使用着重号`应当保持字段名和类型的一致性。2、常见的数据类型通常分为四大类:数值类型、字符类型、日期类型、空间数据类型。浮点类型 FLOAT、DOUBLE定点数类型 DECIMAL。

2025-02-03 10:58:17 880

原创 MySQL子查询

如果子查询的执行依赖于外部查询,通常情况下是因为主查询中的表用到了外部的表,并进行了条件关联,因此,每执行一次外部查询,子查询都要重新计算一次,这样的子查询称之为关联子查询。2、称谓规范:外查询(主查询)、内查询(子查询),这种称呼是相对的。不相关子查询:无论外查询如何变化,内查询只返回固定的数据。1、理解:可以理解为嵌套查询,查询的内部进行查询。子查询(内查询)在主查询之前一次执行完成。相关子查询:内查询根据外查询的变化而变化。子查询的结果被主查询(外查询)使用。多行子查询:内查询返回多个结果。

2025-02-03 10:57:08 244

原创 单行函数与聚合函数

函数分类:数字、字符串、日期和时间、流程控制、加密与解密、获取MySQL信息、聚合单行与多行(复杂)函数单行函数:只对一行进行变换每行返回一个结果一、数值函数:1、基本函数ABS绝对值SIGN返回符合PI圆周率CEIL 返回大于xx的最小整数FLOOR 返回小于xx的最大整数2.三角函数进制转换BIN十转二HEX十转十六OCT十转八y为原进制,z为目标进制字符串函数1、ASCII() 只返回字符串中第一个字符的ASCII码值。

2025-02-03 10:56:13 1022

原创 MySQL(4)多表查询

外连接:合并具有同一列的两个以上的表的行,结果集中除了包含一个表语另一个表匹配的行之外,还查询了左表或右表中不匹配的行。UNION ALL操作符:在满外连接的情况下,加上两表的交集,对两表重复的部分不去重。内连接:合并具有同一列的两个以上的表的行,结果集中不包含员工表与另一个表不匹配的行。可以理解为:除了内连接的表内容,还查询了两张表中内连接内容以外的内容。2、若查询语句中出现多个表中都存在的字段,必须指明此字段所在的表。的方式进行SELECT的区分,使用WHERE写明查找的条件。AND、>=、<=等。

2025-01-21 21:14:11 652

原创 MySQL(3)运算符、排序与分页

如果等号两边的值、字符串或者表达式都为字符串,则MySQL会按照字符串进行比较,比较的是每个字符串中字符的ANSI编码是否相等。大多数时候可以交替使用,存在有一边为NULL的时候返回NULL(如果两边都存在NULL,仍然返回NULL)当需要查找的内容包含下划线时,则使用转义字符,\_表示下划线的符号而不是不确定的字符。,两个操作数均为NULL时返回1,一个操作数为NULL时返回0而不返回NULL。使用ORDER BY,可以从低到高(升序)对表的数据进行排序。BETWEEN之后的数应该比AND后的数值小。

2025-01-21 21:13:31 375

原创 MySQL(2)基本的select语句

主要的语句关键字包括:CREATE、DROP、ALTER、RENAME、TRUNCATE主要的语句关键字包括:GRANT、REMOVE、COMMIT、REOLLBACK、SAVAPOINTSQL语言的规则和规范:一、SQL语言的规则1、SQL语句可以写在一行也可以分行写。为了提高可读性,一般分行写,必要时使用缩进。2、每条命令以;或者\g或者\G结束3、关键字不能缩写也不能分行。关于标点符号:1、必须保证所有的()单引号双引号是成对结束的2、必须使用英文状态下的半角输入方式。

2025-01-21 21:12:21 356

原创 MySQL(1)概述

MySQL软件体积小,总体成本低,易于维护,开放源代码,可以处理成千上万条的大型数据库,使很多互联网公司,中小型网站选择了MySQL作为网站数据库。一对多的建表原则:在从表(多方)创建一个字段,字段作为外键执行主表(一方)的主键。-2- 以行和列的形式存储数据,行和列形成表,一组表组成一个库(DB)。外键唯一:主表的逐渐和从表的外键(唯一)行测好难过主外键关系,外键唯一。常见的实例场景:客户表和订单表,分列表和商品表,部门表和员工表。传统关系型数据库的阉割版,不需要进行SQL层的解析,性能高。

2025-01-21 21:11:23 401

原创 JDK新特性(4)

为了尽量减少fullgc带来的影响,在Java10中,就把之前的那个单线程版的标记-清除-压缩的fullgc算法改成了支持多个线程同时fullgc。类(java.util.Optional)是一个容器类,它可以保存类型T的值,代表这个值存在。但毕竟是“尽量”,在有些情况下,G1就要进行fullgc了,比如如果它无法足够快的回收内存的时候,它就会强制停止所有的应用线程然后清理。在safepoints这个点,Java的线程是要暂停执行的,从而限制了GC的效率。JDK9以后默认的垃圾回收器是G1GC。

2025-01-18 12:31:44 896

原创 JDK新特性(3)

在Java中,通常需要使用String类型表达HTML,XML,SQL或JSON等格式的字符串,在进行字符串赋值时需要进行转义和连接操作,然后才能编译该代码,这种表达方式难以阅读并且难以维护。try的前面可以定义流对象,try后面的()中可以直接引用流对象的名称。1、在try()中声明的资源,无论是否发生异常,无论是否处理异常,都会自动关闭资源对象,不用手动关闭了。利用jShell在没有创建类的情况下,在命令行里直接声明变量,计算表达式,执行语句。,完成强转后的变量声明,简化了代码。

2025-01-18 12:31:10 724

原创 JDK新特性(2)Stream API

例如:toList(),将元素收集为list集合;多个中间操作可以连接起来形成一个流水线,除非流水线上触发终止操作,否则中间操作不会执行任何的处理!即一旦执行终止操作,就执行中间操作链,并产生结果。-2-distinct():通过hashCode()和equals()方法比较元素,实现元素去重。StreamAPI关注多个数据的计算(排序、查找、过了、映射、遍历)等,④Stream一旦执行了终止操作,就不能再调用其它中间操作或终止操作了。-1-filter():筛选符合指定条件的元素。

2025-01-18 12:30:27 407

原创 JDK新特性(1)

自动装箱、自动拆箱、注解、enum、Lamda表达式、方法引用、switch表达式、try-catch变化、record等。Lambda形参列表(重写后的抽象方法中的形参列表)->lambda体(重写后的方法体)当需要提供一个函数式接口的实例时,我们可以使用lambda表达式提供此实例。一方面,lambda表达式作为接口的实现类的对象--->万事万物皆对象。具体调用的是哪一个构造器取决于函数式接口的抽象方法的形参列表。底层的油滑、JVM参数的调整、SC的变化、内存结构。

2025-01-18 12:28:09 447

原创 反射(2)反射的应用

因此,要求各个运行时类提供一个空参的构造器,便于编写创建运行时类对象的代码。目前newInstance方法已经过时,在jdk9中,替换为Constructor类调用newInstance()方法。⑤可以通过Field取得的属性可以通过get方法访问,或者通过set方法修改属性原本的值。原因1:子类对象实例化时,子类的构造器首行默认调用父类空参构造器。获取类中的各种结构,包括属性、注解、方法、返回值、形参列表等。方法:通过Class的实例调用newInstance方法。条件2:空参构造器的权限应该足够。

2025-01-18 12:25:16 243

原创 反射(1)Class和类的加载

接着,我们使用java.exe命令对指定的.class解释运行,这个解释运行的过程中,需要将.class字节码文件加载到内存中。加载到内存中的.class文件对应的结构即为class的一个实例。负责加载java.ext.dirs系统属性所制定的目录中加载类库,或从JDK的安装目录的jre/lib/ext子目录下加载类库。(无法获得,返回null)因为同一个加载器只能加载一次,想要对同一个类加载多次,需要用户自己定义类加载器。因为同一个加载器只能加载一次,想要对同一个类加载多次,需要用户自己定义类加载器。

2025-01-18 12:23:18 786

原创 网络编程(2)

2、服务端收到客户端的 SYN 报文后,也随机一个初始序列号(seq=y),设置ack=x+1,表示收到了客户端的x之前的数据,希望客户端下次发送的数据从x+1开始。3、客户端收到服务端报文后,还要向服务端回应最后一个应答报文,将ACK置为 1 ,表示这是一个应答报文 ack=y+1 ,表示收到了服务器的y之前的数据,希望服务器下次发送的数据从y+1开始。在通信结束后,仍然要调用Scoket的close()方法,因为只有该方法才会释放Socket占用的资源,比如占用的本地端口号等。

2025-01-13 11:10:44 758

原创 网络编程(1)概述与三大网络通信要素

域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器(DNS,DomainNameSystem,域名系统)负责将域名转化成IP地址,这样才能和主机建立连接。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java的本机安装系统里,由JVM进行控制。计算机网络通信涉及内容很多,比如指定源地址和目标地址,加密解密,压缩解压缩,差错控制,流量控制,路由控制,如何实现如此复杂的网络协议呢?最常用的复合方式是层次方式,即。,就是在一定的协议下,实现两台计算机的通信的程序。

2025-01-12 23:15:05 548

原创 file与io流(2)

字节流:利用byte数组的存入和输出流,通常可以完成非文本文件的操作。的原因,如果FileWriter不关闭输出流,无法写出字符到文件中。抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。字符编码:字符、字符串、字符数组--->字节、字节数组由可见可懂的转化为不可懂的。说明:close()方法,当完成流的操作时,必须调用此方法,释放系统资源。字符解码:字节、字节数组--->字符、字符串由不可懂的转化为可见可懂的。

2025-01-12 23:13:42 859

原创 file与io流(1)分类与概述

如果File对象代表的文件或目录存在,则File对象实例初始化时,就会用硬盘中对应文件或目录的属性信息(例如,时间、类型等)为File对象的属性赋值,否则除了路径和名称,File对象的其他属性将会保留默认值。File类中声明了新建删除获取名称重命名等方法,,并没有涉及到文件的读写操作,若想实现文件内容的读写,需要使用io流。publiclonglength():获取文件长度(即:字节数)。不能获取目录的长度。包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过。父类名作为子类名后缀。

2025-01-12 23:11:58 750

原创 集合源码的常见问题

虽然从设计hashCode()到上面HashMap的hash()函数,都尽量减少冲突,但是仍然存在两个不同的对象返回的hashCode值相同,或者hashCode值就算不同,通过hash()函数计算后,得到的index也会存在大量的相同,因此key分布完全均匀的情况是不存在的。因为如果数组的长度为2的n次幂,那么table.length-1的二进制就是一个高位全是0,低位全是1的数字,这样才能保证每一个下标位置都有机会被用到。添加了随机性并且混合了高位的部分特征,显著减少了碰撞冲突的发生。

2025-01-09 21:21:21 836

原创 数据结构(2)

jdk8中,初始化底层数组,但此时不确定初始长度,直到为第一个元素赋值,才确认底层数组初始长度为10,并对数组中的element [0]进行赋值。,数组的每一个索引位置被称为一个桶(bucket),你添加的映射关系(key,value)最终都被封装为一个Map.Entry类型的对象,放到某个table[index]桶中。若:key1与key2的哈希值2不同,则(key1,value1)添加成功--->将(key1,value1)与原有的(key2,value2)构成单向链表。

2025-01-09 21:20:44 964

原创 数据结构与源码(1)

满足如下性质: (1)若它的左子树不为空,则左子树上所有结点的值均小于它的根节点的值;(2)若它的右子树不为空,则右子树上所有结点的值均大于它的根节点的值;第n层的结点数是2的n-1次方,总的结点个数是2的n次方-1。:从根节点到树中某结点所经路径上的分支树称为该结点的层数,根节点的层数规定为1,其余结点的层数等于其父亲结点的层数+1。数据的逻辑结构指反映数据元素之间的逻辑关系,而与数据的存储无关,是独立于计算机的。:节点的下层结点,如图中,节点E的子节点是K节点、节点G的子节点是L节点。

2025-01-09 21:19:15 599

空空如也

空空如也

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

TA关注的人

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