使用广义表(generalized lists)来表示二叉树非常方便,假如我们有这么一个二叉树: 它可以表示为L = (A (B (C, D), E ( , F) ) ),直观地表达了树中各个节点之间的关系。 今天主要记录如何通过解析这个广义表,构建出真实的树存储结构。 下面是其主要思路: 逐个获取广义表字符串中除空格之外的每个字符,遇到左括号就标记START_LEFT_CHILD,遇到逗号就标记START_RIGHT_CHILD,遇到右括号就返回到父节点层次。当遇到字母时,就创建一个节点,并与父节点进行关联。 遇…

2021年10月15日 0条评论 13点热度 阅读全文

基础知识  条件概率(Conditional Probability)      相互独立时,p(A | B) = p(A)   贝叶斯规则 贝叶斯网络(Bayesian Network)定了一个独立的结构:一个节点的概率仅依赖于它的父节点。贝叶斯网络适用于稀疏模型,即大部分节点之间不存在任何直接的依赖关系。   联合概率(Joint Probability),表示所有节点共同发生的概率,将所有条件概率相乘:   我们最终的目标是计算准确的边缘概…

2021年9月6日 0条评论 35点热度 阅读全文

方法一: 思想     由大到小的截取并返回 保证如果返回肯定是返回最大的 短字符串的处方式:第一次for循环:递减 。第二次for循环 :截取该长度字符串的可行方案个数     然后截取 长字符串长度处理方案:截取"第一次截取的字符串" 可行方案个数  两次截取内容一致,返回   1、获得最长公共子序列--可以 返回 “最长公共子序列的长度” 或者 “最长公共子序列”   public static int get…

2021年7月10日 0条评论 5点热度 阅读全文

前言 循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。其将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可将元素加入到第一个位置,即将存储空间的第一个位置作为队尾。循环队列可以更简单防止伪溢出的发生,但队列大小是固定的。在循环队列中,当队列为空时,有front=tail,而当所有队列空间全占满时,也有front=tail。为了区别这两种情况,规定…

2021年6月12日 0条评论 25点热度 阅读全文

1.本科时候,严老师的那本书上给的写法 int partition(int A[],int left,int right){ if(left >= right) return left; int x = A[left]; while(left < right){//left should be less than right. left is overwritten.... while(left < right && A[right] > x) --right; A[left…

2021年5月20日 0条评论 10点热度 阅读全文

问题出处:中文版 LeetCode 127题 - 单词接龙 问题   问题描述:(源自LeetCode) 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。 转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。   说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和…

2021年5月9日 0条评论 3点热度 阅读全文

找出图中顶点被遍历的顺序,用深度优先搜索 #include<stdio.h> int e[50][50],book[50]; int n,m,a,b,sum=0; int inf=99999999; void dfs(int cur) {     int i;     printf("%d ",cur);     sum++;     if(sum==n)         return…

2021年5月4日 0条评论 80点热度 阅读全文

找出有向图中两个顶点的最短路径,深度优先遍历每条路径,找出路径最短的 #include<stdio.h> int e[50][50],book[50]; int inf=99999999; int n,m,a,b,c,sum=0,min=99999999 ; void dfs(int cur,int step) {     int i;     if(step>min)         return;   &…

2021年5月4日 0条评论 72点热度 阅读全文

前言: 其实数学中的很多东西都是很抽象的,我们可以不妨将抽象的问题转化为数学问题,比如说三维我们可以转换为二维,二维我们可以继续转换为一维,那么最终我们以画表已数据可视化的方式展现出来就又成了一个简单的数学问题,其中难就难在该以什么样子的方式去转换,而这个转化的过程呢也就是所谓的 ——— 算法 题目已知有5个城市和8条公路,图中已经标出每个城市到每个城市之间的距离,求出1号城市到5号城市的最短路径。 思路:想一想图中的问题我们是不是可以把它转换成表格的形式看起来更加舒服,更容易得出结果呢?那既然是表格我们是不是在程…

2021年5月4日 0条评论 66点热度 阅读全文

概念 B树,英文是B-tree,是一种平衡多路树,这个不叫B减树,就是B树。 B树是一种多路树。因为他的子节点不止2个,可以是多个。 B树是一种平衡树。所谓平衡树,指的是他的左右两个子树的高度差小于等于1,而且左右子树的子树高度差也小于等于1。其实B树算是一种特殊的平衡树,因为B树的要求更高,要求左右子树高度相同,也就是说,根节点到每个叶子节点的距离都相同。 约定 1,ceil(x),这是一个向上取整的函数,比如ceil(1.1)=2。注意这不是四舍五入,而且是得到比参数大的那个整数。 2,B树可以用阶数来定义,阶…

2021年5月3日 0条评论 72点热度 阅读全文