摘要: 最短路径问题 最短路径是把两点之间路径最短的问题,应用如导航,两个地方怎么走距离最短。可以存在到不了的情况。 这个问题是说,如何找到从某个特定的节点出发,通向其他节点的最短路径。它只着眼于点与点之间的路径问题,并不关注整个图,也就意味着对一个节点运行算法的结果与另一个节点的结果之间没有多少关系。 比 阅读全文
posted @ 2021-04-04 09:12 gonghr 阅读(1870) 评论(2) 推荐(1) 编辑
摘要: 声明:图片及内容基于:https://www.bilibili.com/video/BV16C4y1H7Zc?from=articleDetail 最短路径 Dijkstra算法 原理 数据结构 核心代码 findMinDist() int MGraph::findMinDist(){ int le 阅读全文
posted @ 2021-04-03 11:18 gonghr 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1yp4y1Q74o?from=articleDetail 最小生成树原理 、 普利姆(Prim)算法 原理 Prim算法的实现 核心代码 void MGraph::Prim(int start){ shortEd 阅读全文
posted @ 2021-03-31 08:40 gonghr 阅读(2440) 评论(1) 推荐(3) 编辑
摘要: 基本类型包装类 基本类型包装类的作用 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据 常用的操作之一:用于基本数据类型与字符串之间的转换 基本类型对应的包装类 基本数据类型 包装类 byte Byte short Short int Integer long Long f 阅读全文
posted @ 2021-03-28 20:59 gonghr 阅读(78) 评论(0) 推荐(0) 编辑
摘要: API概述 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何 实现的,只需要学习这些类如何使用即可,我们可以 阅读全文
posted @ 2021-03-28 20:09 gonghr 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1zc411h7T7?from=articleDetail 树和二叉树之间的对应关系 树转化成二叉树 具体步骤 1.兄弟加线 2.保留双亲与第一个孩子连线,删除与其他孩子的连线 3.顺时针转动使其层次分明(原有的线 阅读全文
posted @ 2021-03-28 15:55 gonghr 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 前序遍历 void PreOrder(BiNode *bt){ BiNode * p=bt; stack<BiNode*> s; while(p!=NULL||!s.empty()){ while(p!=NULL){ cout<<p->data<<" "; s.push(p); p=p->lchil 阅读全文
posted @ 2021-03-28 15:50 gonghr 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 函数式编程思想概述 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿数据做操作” 面向对象思想强调“必须通过对象的形式来做事情” 函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做” 而我们要学习的Lambda表达式就是函数式思想的体现 Lambda表达式的标准格 阅读全文
posted @ 2021-03-27 21:16 gonghr 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 内部类的基本使用 内部类概念 在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类 内部类定义格式 格式&举例: /* 格式: class 外部类名{ 修饰符 class 内部类名{ } } */ class Outer { public class Inner { } } 阅读全文
posted @ 2021-03-27 19:15 gonghr 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 多态的概述 什么是多态 同一个对象,在不同时刻表现出来的不同形态 多态的前提 1.要有继承或实现关系 2.要有方法的重写 3.要有父类引用指向子类对象 代码演示 class Animal { public void eat() { System.out.println("动物吃饭"); } } cl 阅读全文
posted @ 2021-03-27 17:37 gonghr 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 定义 标签,类似——label1: 放在循环外部,用于内部多重循环语句的跳出 例子 public static void main(String[] args) { Scanner sc = new Scanner(System.in); label: while (true) { int a = 阅读全文
posted @ 2021-03-27 14:44 gonghr 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1rp4y1Q72r?from=articleDetail 图的遍历 深度优先遍历(DFS) DFS核心是递归和栈 原理 邻接矩阵DFS代码 template <class T> void MGraph<T>::D 阅读全文
posted @ 2021-03-27 14:04 gonghr 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1MK411j7CR?from=articleDetail 相关概念 特点 构造过程 存储结构 代码 #include<iostream> #include<vector> #include <limits.h> 阅读全文
posted @ 2021-03-27 11:01 gonghr 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1Qf4y1m77B?from=articleDetail 邻接矩阵(数组表示法) 无向图的邻接矩阵 有向图的邻接矩阵 网图的邻接矩阵 邻接矩阵存储有向网图代码 类的声明 template <class T> cl 阅读全文
posted @ 2021-03-27 11:00 gonghr 阅读(182) 评论(0) 推荐(1) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1tQ4y1N7KC?from=articleDetail 图的定义 图的基本术语 阅读全文
posted @ 2021-03-27 08:19 gonghr 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 声明:内容及图片基于https://www.bilibili.com/video/BV1Gz411b7Rq?from=articleDetail 二叉树的存储结构 二叉树的顺序存储结构 二叉树的链式存储结构 struct BiNode{ DataType data; BiNode *lchild,* 阅读全文
posted @ 2021-03-26 14:57 gonghr 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 接口的概述 接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。 Java中接口存在的两个意义 用来定义规范 用来做功能的拓展 接口的特点 接口用关键字interface修饰 public interface 接口名 {} 类实现接口用implements表示 public class 类 阅读全文
posted @ 2021-03-25 21:18 gonghr 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1ke411s7Nk?from=articleDetail 概念 哈夫曼编码代码 void huffmanCoding(element *huffTree,char *huffCode[],int n){ char 阅读全文
posted @ 2021-03-25 18:55 gonghr 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 继承 继承的实现 继承通过extends实现 格式:class 子类 extends 父类 { } 举例:class Dog extends Animal { } 继承带来的好处 继承可以让类与类之间产生关系,子父类关系,产生子父类后,子类则可以使用父类中非私有的成员。 public class F 阅读全文
posted @ 2021-03-25 18:49 gonghr 阅读(2106) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1Z54y1R7Kt?from=articleDetail 二叉树的定义 二叉树的特点 二叉树的基本形态 特殊的二叉树 斜树 满二叉树 完全二叉树 二叉树的基本性质 阅读全文
posted @ 2021-03-17 10:34 gonghr 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/BV1o541147mS?from=articleDetail 树的逻辑结构 树的定义 树的基本术语 树结构和线性结构的比较 树的抽象类型定义 树的遍历操作 树的存储结构 双亲表示法 孩子链表表示法 改进,多存储节点的 阅读全文
posted @ 2021-03-17 09:59 gonghr 阅读(786) 评论(0) 推荐(0) 编辑
摘要: API API概述 API (Application Programming Interface) :应用程序编程接口 java中的API指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来 键盘录入字符串 Scanner类 : next() : 遇到了空格, 就不再录入数 阅读全文
posted @ 2021-03-16 21:26 gonghr 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/av97010411 特殊矩阵的压缩和存储 对称矩阵的压缩存储 三角矩阵的压缩存储 对角矩阵的压缩存储 稀疏矩阵的压缩和存储 稀疏矩阵 三元组 十字链表 完整实例 定义三元组 typedef struct { int 阅读全文
posted @ 2021-03-16 17:26 gonghr 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/av95949609 BF算法 原理分析 Brute Force 暴力算法 用来在主串中查找模式串是否存以及出现位置. 核心就是回溯 如果模式串下标 j 始终没有到达'\0'则没有找到 如果主串下标 i 最后到达了'\ 阅读全文
posted @ 2021-03-13 10:00 gonghr 阅读(326) 评论(0) 推荐(1) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/av94576761 原理分析 数据结构 注意本文只考虑有头节点类型 基本数据类型 定义节点 template<class T> struct Node { T data; struct Node<T>* next; 阅读全文
posted @ 2021-03-12 19:58 gonghr 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/av94331942 原理分析 数据结构 FIFO:先进先出 front指向头元素的前一个位置 rear指向最后一个元素 如果用rear=front来判断队列为空还是满,会出现歧义,其实无法判断 此时,若再插入一个元素 阅读全文
posted @ 2021-03-12 18:36 gonghr 阅读(369) 评论(0) 推荐(1) 编辑
摘要: 类和对象 类和对象的关系 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合 简单理解:类就是对现实事物的一种描述 类的组成 属性:指事物的特征,例如:手机事物(品牌,价格,尺寸) 行为:指事物能执行的操作,例如:手机事物(打电话 阅读全文
posted @ 2021-03-12 14:17 gonghr 阅读(97) 评论(0) 推荐(0) 编辑
摘要: vector容器基本概念 Vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素。 注意其扩容方式不是在原基础上增加空间,而是重新以一定倍数分配一块更大的新空间,具体倍数由不同编译器决定,大约1.5~2倍。 vector迭代器 vector<T>::iterator it v 阅读全文
posted @ 2021-03-12 00:18 gonghr 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 声明:图片及内容基于https://www.bilibili.com/video/av76265320 题目描述 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法! 设计思路 皇后位置 用一维数组表示,数组下标是行,元素是列 i 阅读全文
posted @ 2021-03-11 23:26 gonghr 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 准备 定义结构体 typedef struct Node{ int data; struct Node* next; }Node,*pNode; 链表初始化 void initHead(pNode &head){ head=new Node; head->next=NULL; } 链表建立(尾插法) 阅读全文
posted @ 2021-03-11 11:31 gonghr 阅读(1832) 评论(0) 推荐(0) 编辑