06 2022 档案
摘要:https://zhuanlan.zhihu.com/p/129373740 1.要求:边无负。用遍历即可,先选个最小的锁定,再修改路径值。 2.
阅读全文
摘要:1.适用范围:无向图 2.Prim算法是一种基于顶点的贪心算法,从起始顶点出发,每次迭代选择当前可用的最小权值边,然后把边上依附的其他顶点加入最小生成树。prim算法可以称为“加点法”,比较适合稠密图 3.
阅读全文
摘要:(1)写两个头文件A.h和B.h分别用于声明类A和B;(2)写两个.cpp文件分别用于定义类A和B;(3)在A的头文件中导入B的头文件;(4)在B的头文件中不导入A的头文件,但是用extern 的方式声明类A,并且,在B中使用A的时候要用指针的形式。原理:在B中用指针调用A,那么在A需要知道B占空间
阅读全文
摘要:宽度优先遍历,是以离初状态的状态距离为序进行遍历。 set检查判断是否有重复
阅读全文
摘要:1.搜索二叉树: 定义:每一个节点的左节点都比它小,右节点比它大。 判断方式:中序遍历,应为从小到大的排序。 2.完全二叉树CBT: 定义:除最后一层数都是满的,最后一层从左到右依次变满。 判断:宽度优先遍历(见10day)。1.任一节点有右无左,直接返回false, 2.在一不违规下,如果遇到第一
阅读全文
摘要:1.二叉树宽度优先遍历 使用队列,头节点进入,弹出打印,先放左再放右。终止条件,queue为空。其余操作随意。 有Bug最后一层无法结算,导致max无法更新。 应该return 时再比较一次
阅读全文
摘要:1.递归序!!! 2.先序遍历。 第一次来到时打印。 中序遍历为第二次来到节点时打印,后序第三次打印。 3.不用递归的先序遍历 后序: 中序:整个二叉树都按照左边界分解。 两次print行为可以改为任意行为,比如判断。。
阅读全文
摘要:判断两个链表是否有公共部分,存在则返回 1.两个链表都无环: 分别得到两个链表的长度和最后一个节点的地址,比较地址是否相等,如果不相等,则无公共部分。如果相等,则较长的链表先走长度之差,再两个链表一起走,节点相等则进入公共部分。 2.一个链表有环,一个链表无环。不可能相交。 3.两个链表都有环
阅读全文
摘要:1.判断是否为回文链表 法一1.把数组右边放入栈中,弹出比较 2.使用快慢指针,快指针走完时慢指针指向数组中间位置。 法二1.使用快慢指针,直接改链表^-^进行判断,然后再改回去。 代码:1. 2. whlie里面很好用,大量实践得到 3. 只用了6个变量
阅读全文
摘要:1.哈希表在使用时都认为时间复杂度为常数级别(比较大的常数^-^),指针占8字节 2.有序表的Key要能比较。性能比哈希表差,o(nlogn) 哈希——>有序
阅读全文
摘要:1.稳定性的意义 对于商品,先从好评率排,再从价格排,得到物美价廉的。 对于使用相邻交换的排序是具有稳定性的,关键在于相等时,桶排序有稳定性(不基于比较的排序) 2.总结 快排比归并更快 3. 系统提供的arr.sort()在arr为基础类型时使用快排,为自定义类型时使用归并排序。
阅读全文
摘要:不基于比较的排序是比较依赖数字状况的 1.计数排序 2.桶排序(基数排序)需要数据对象有进制
阅读全文
摘要:对于普通函数来说,声明放在头文件,定义放在源文件,其它地方要使用该函数时,仅需要包含头文件即可。因为编译器编译时是以一个源文件作为单元编译的,当它遇到不在本文件中定义的函数时,若能够找到其声明,则会将此符号放在本编译单元的外部符号表中,链接的时候自然就可以找到该符号的定义。而对于模板函数来说(在编译
阅读全文