文章分类 -  数据结构和基本算法

摘要:参考博客:https://www.cnblogs.com/cxy2020/p/13799047.html 跳表是基于有序链表,增加了多级索引,并可进行二分查找的有序链表。同时其插入和删除操作性能也不错。 1.存储结构 类似于图上的这种多层结构,在搜索时一级一级进行类似于二分查找的方式。直到定位到具体 阅读全文
posted @ 2022-02-20 18:48 Cheung-10
摘要:参考博客:https://blog.csdn.net/yin767833376/article/details/81511377 1. 二叉查找树 左子树键值小于根键值,右子树键值大于根键值。 通常二叉查找树可以检查查找比较次数,提高搜索效率。但在某些极端情况下,由于插入数值的顺序会导致树不平衡甚至 阅读全文
posted @ 2021-10-15 17:44 Cheung-10
摘要:morris算法空间复杂度为O(1),时间复杂度为O(N) 核心思想是使用节点的左子树最右叶节点的右指针指向节点。其特点在于: 每个节点的左子树最右节点都不同,不用担心冲突; 可以不保存原节点的指针,进行右移动时会自动回到子树的根节点; 通过判断最右节点是否指向当前节点可以知道是否已遍历过左子树; 阅读全文
posted @ 2021-09-08 15:51 Cheung-10
摘要:二叉树的遍历包括前序、中序、后序、层次遍历。实现方式一般为递归和循环两种。 接下来给出遍历算法代码,均使用C++编写。 二叉树结点 使用leetcode常见的TreeNode 1 struct TreeNode { 2 int val; 3 TreeNode *left; 4 TreeNode *r 阅读全文
posted @ 2021-09-07 17:34 Cheung-10