随笔分类 - 数据结构
摘要:208. 实现 Trie (前缀树) 题目描述 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。 示例: Trie trie = new Trie(); trie.insert("apple"); trie.search("apple");
阅读全文
摘要:数据结构课上学的邻接表存储图只能用来学习使用,真正写算法题的是否如果也写那么多个类,构建图和DFS操作这么多还这么复杂,那肯定时间不够,所以下面介绍一种刷题的时候比较实用的一种方式,一般不需要创建类,或者最多只需创建一个类 如果每个边没有权重,使用ArrayList<LinkedList<Integ
阅读全文
摘要:Kruscal算法实现最小生成树 主方法 1 import java.util.Arrays; 2 import java.util.Comparator; 3 import java.util.Scanner; 4 5 public class Solution4 { 6 static class
阅读全文
摘要:DFS的复杂度分析: 对于邻接表的存储方式:因为邻接表中每条链表上的从第2个结点到表尾结点一定是表头结点的邻接点,所以遍历表头结点的邻接的过程中只需要遍历这些顶点即可,无需遍历其他的顶点,所以遍历某个顶点的所有邻接点的复杂度为O(ei), ei为每个顶点的邻接点个数,也就是每条链表的边数。所以邻接表
阅读全文
摘要:1.单源最短路径 (1)无权图的单源最短路径 函数:返回还未被收录顶点中dist最小者 2.多源最短路径Floyd算法
阅读全文
摘要:树采用顺序数组方式存储,从下表0开始存储,i的左孩子是2 * i + 1,右孩子是2 * i + 2 效果图片: 参考文章:http://www.doc88.com/p-7136117098724.html
阅读全文
摘要:随机存取、顺序存取、随机存储和顺序存储这四个概念是完全不一样的,切不可将之混淆 很多人包括我可能认为随机存取就是随机存储,顺序存取就是顺序存取,其实不是这样。 下面完整的介绍一下这4个概念 存取结构:分为随机存取和非随机存取(又称顺序存取) 1、随机存取就是直接存取,可以通过下标直接访问的那种数据结
阅读全文
摘要:错误 1 error LNK2019: 无法解析的外部符号 "public: int __thiscall SqList<class StuTab>::getLength(void)" (?getLength@?$SqList@VStuTab@@@@QAEHXZ),该符号在函数 "class std
阅读全文
摘要:派生类不能继承基类的构造函数,必须自己定义构造函数进行新增数据成员初始化工作,如果想同时初始化基类数据成员,必须调用基类构造函数。 例如: 基类也可以使用初始值列表的构造函数:派生类的构造函数不用改变 构造一个类的对象之前,必须先构造其中的嵌套类对象,若没给嵌套类传参数,则调用嵌套类的默认构造函数,
阅读全文
摘要:在一般友元函数的前面加上 template<typename T),注意在函数的声明和定义处都要加这个模板 例如: 友元函数的定义部分也要加上template<typename T>这个模板 如果不知道怎么声明模板类的友元函数,可以在类内部用函数实现你想用友元函数实现的功能, 然后在类外的友元函数中
阅读全文
摘要:输入测试数据: 5 4 10 0 0 8 14 0 0 0 0 15 和 5 4 10 0 0 8 14 0 0 0 0 13 头文件:head.h 1 #ifndef HEAD_H_INCLUDE 2 #define HEAD_H_INCLUDE 3 4 #include <stdio.h> 5
阅读全文
摘要:第一种方法的逻辑是我比较理得清的 法一: midS是存放中缀表达式的字符串,字符之间没有空格,suffiexS是存放后缀表达式的字符串,数字和字符之间都有空格 思路: 1.如果midS[i]是'(',直接压栈 2.如果是数字, 把完整数字复制到到midS中后加一个空格,读取完数字后要判断此时的mid
阅读全文
摘要:题目链接:https://pintia.cn/problem-sets/434/problems/5865
阅读全文
摘要:1 #include 2 #include 3 4 #define MAXSIZE 1000 5 #define ERROR -1 6 7 struct Node{ 8 int Customer[MAXSIZE]; 9 int rear; 10 int front; 11 }; 12 13 typedef struct Node* Qu...
阅读全文
摘要:汉诺塔实现的基本思路是:不断将n个盘的汉诺塔问题转换为2个(n-1)个盘的汉诺塔问题,用递归实现比较好理解。设n盘问题为(n, a, b, c),其中参数如下结构体所定义,第一个参数表示需要移动的盘子的数量,第二个参数表示n个盘子起始所在柱子a, 第三个参数表示会被借用的柱子b, 第四个参数表示这
阅读全文
摘要:题目链接:https://pintia.cn/problem-sets/434/problems/5654 代码如下:代码是参考这篇文章的:https://blog.csdn.net/VisDate/article/details/50950019
阅读全文
摘要:题目链接:https://pintia.cn/problem-sets/434/problems/5726 1.如果题目没有给我们建好原递增序列的链表,那么我们可以考虑在创建原链表时插入需要插入的结点,就是在创建原链表时,每读入一个数据,将该数据与待插入的数据相比较,如果发现待插入数据小于等于刚读入
阅读全文
摘要:二叉查找树的建立: 递归查找给定元素 非递归查找给定元素: 递归查找最小元素结点 非递归查找最大元素结点: 插入一个结点: 删除给定元素的结点: 1.要删除的结点有两个孩子结点 2.要删除的结点只有一个孩子结点 3.要删除的结点没有孩子结点 用来测试的其他函数和主函数:
阅读全文

浙公网安备 33010602011771号