“您好,我是XX快递,您有一个包裹等待签收”,快递员总是会给我们带来惊喜。 敬业的快递小哥将包裹安全送达到你的手中,然后启程去送下一份包裹,每一天都走遍无数的大街小巷。 忘忧今天与大家聊的话题,就是快递员走过的路。 什么是图 在数据结构中,树是一种一对多(节点与节点)的非线性数据结构,节点间有明确的层级关系,而图则是一种多对多(顶点与顶点)的非线性数据结构,顶点之间不存在父子关系。 有向图和无向图 图按照顶点之间的连通性,可分为有向图和无向图。 无向图:指的是顶点之间的连接没有方向,如快递小哥的路线图中,快递小哥既…

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

静态查找表(Static Search Table):只作查找操作的查找表;  动态查找表(Dynamic Search Table):在查找过程中同时插入不存在的元素,或者是删除已经存在的元素。 顺序查找        顺序查找适合于存储结构为顺序存储或链接存储的线性表。 原理:        顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表…

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

1)如果是二叉排序树 在二叉排序树中查找某值,此时利用二叉排序树的性质,节点的左子树都是小于这个节点,节点的右子树都是大于这个节点的,所以从某节点node开始查找,如果在要找的值小于这个节点的值,就在左子树中查找,如果要找的值大于这个节点的值,就在该节点的右子树中查找,这里看出,最终查找后,从根节点到结束查找的节点,只有一条路径,所以二叉查找树的效率很高,如果一直找到某一个叶子节点,还没有找到,就返回false。 代码示例: public boolean get(Node x,int data){ if(x==nu…

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

静态查找表(Static Search Table):只作查找操作的查找表;  动态查找表(Dynamic Search Table):在查找过程中同时插入不存在的元素,或者是删除已经存在的元素。 顺序查找        顺序查找适合于存储结构为顺序存储或链接存储的线性表。 原理:        顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表…

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

1 快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程 2 100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。 3 一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。 先说了一下dfs递归实现。面试官说要优化。 说了一下用迪杰斯特拉的思路,说可以。 4 四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。说了好几种方案,面试官引导我优化了一下,但是还是不满意,最后他说跳过。 5 hashmap的实现,hashtable,…

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

顺序表 1 ArrayList 的使用 1.1 创建 ArrayList 实例 1.2 添加元素 1.3 删除 1.4 查找 1.5 获取修改元素 1.6 遍历 2 实现自己的 MyArrayList   线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串等… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式的结构形式存储。 顺序表和链表区别: 顺序表:元素和元…

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

二叉树的前序、中序、后序遍历的非递归实现 写在前面 public class TreeNode { public int val; public TreeNode left; public TreeNode right; } 前序遍历 实现一:使用单个栈完成 public class Preorder { public List<Integer> preorder(TreeNode root) { if(root==null) return new ArrayList<>(); Deque&…

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

一、霍夫曼编码基本介绍: 二、通信领域中几种信息的处理方式: 1.定长编码: 原理是将字符对应的ASCLL码转换成二进制后传输信息。 缺点:需要存储大量的二进制数据太浪费时间,空间了。 比如, 空格的ASCLL码值为32,转换成二进制,如图: 2.变长编码: 缺点:匹配的时候,存在多义性。 例如,10110。既可以分解成1,0,110也可以分解成10,110亦可以是101,10. 3.哈夫曼编码: 注意,这个赫夫曼树根据排序方法不同,也可能不太一样, 排序方法的不同是啥意思?比如说有可能会出现权值最小的两个二叉树的…

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

题目: java实现 class Fibonacci{ //递归 public static int fibonacci_recursion(int n){ if(n==0||n==1){ return 1; } if(n>=2){ return fibonacci_recursion(n-1)+fibonacci_recursion(n-2); } return -1; } //非递归 public static int fibonacci_non_recursion(int n){ int fib=0,f…

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

用队列实现栈 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() – 获取栈顶元素 empty() – 返回栈是否为空 OJ链接:队列实现栈 实现如下: class MyStack { private Queue<Integer> qu1; private Queue<Integer> qu2; /** Initialize your data structure here. */ public MyStack() { qu1 = new…

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