数据结构
今天的视频有部分为树的题解,从题解中收获到的知识在不建树的情况下有计算完全二叉树的左子树的规模(把左右两部分都算出),算法如下(H=log2(N+X+1)但是在这里X的影响不大就把X忽略掉了)从而计算出大概的高度,再利用高度通过完全二叉树总结点计算公式把X算出,并且X要在合理范围内,X确定后就可以利用下面推导出的公式计算出左子树的规模了。
题解中还补充了哈夫曼树的特点:
1.总长度最小
2.前缀码数据仅存在于叶结点
3.没有度为1的结点
但是满足2、3的情况不一定满足1
视频另外一部分是最短路径,是之前看过书的,收获不大,但是视频中有详细利用邻接表来计算最短路径的方法(仍然给结构体定义入度和下标两个变量以及一个指针指向它所连接的顶点,遍历一条链相当于数组按照顺序遍历的与他相接的顶点)
java
java有一个垃圾回收机制,JVM会自动回收在堆中未被使用的对象
UML系列图分为三个主要模型:
1.功能模型:从用户角度展示系统的功能(用例图)
2.对象模型:采用对象,属性,操作,关联等概念展示的系统结构和基础(类图,对象图,包图)
3.动态模型:展现系统的内部行为(序列图,活动图,状态图) //摘自其他博客
java中数据类型自动转化
运算符的优先级和C也差不多,今天还巩固了位运算的知识。
细节问题:在定义float型时尾部要加上f,否则视为double型,会出错
引用变量中:变量相当于在一个栈中,对象在另外一个堆里,如果改变了变量的值,堆内存中相应的数据也会发生变化
基础类型变量:方法不会改变传入参数的值,因为基本类型变量存在栈内存中,当方法调用改参数时保存现场,方法结束时,恢复现场,所以方法中改变变量,结束时总会恢复。