数据结构
文章平均质量分 70
数据结构的介绍和实现
竹下为生
这个作者很懒,什么都没留下…
展开
-
C++进阶篇5---番外-位图和布隆过滤器
哈希的应用原创 2023-11-28 23:07:34 · 1300 阅读 · 0 评论 -
C++进阶篇5---哈希
C++哈希表原创 2023-11-21 16:16:08 · 145 阅读 · 0 评论 -
C++进阶篇4---番外-红黑树
红黑树的实现原创 2023-11-12 23:17:04 · 100 阅读 · 0 评论 -
C++进阶篇4---番外-AVL树
AVL树的实现原创 2023-11-07 18:09:32 · 150 阅读 · 0 评论 -
C++进阶篇3---二叉搜索树(Binary Search Tree)
C++进阶篇3---二叉搜索树原创 2023-10-29 19:53:31 · 160 阅读 · 0 评论 -
排序算法的补充
基础排序算法的补充原创 2023-07-17 12:07:41 · 473 阅读 · 0 评论 -
二叉树和堆详解
二叉树的第i层上至多有2i-1(i≥1)个节点 [6]。深度为h的二叉树中至多含有2h-1个节点 [6]。若在任意一棵二叉树中,有n0个叶子节点,有n2个度为2的节点,则必有n0=n2+1 [6]。具有n个节点的满二叉树深为log2n+1。若对一棵有n个节点的完全二叉树进行顺序编号(从0开始),对于编号为ii(1)i的左孩子结点的编号是2*i+1(2)i的右孩子的编号是2*i+1(2)i的父节点的编号是(i-1)/2。原创 2023-06-01 15:10:12 · 814 阅读 · 0 评论 -
堆详解---二叉树的顺序结构存储
基本思想:先建立一个堆,根据堆的性质,堆顶的元素是最大值或最小值,那么我们只要将堆顶的元素与数组的最后一个元素交换,然后根据HeapPop函数的思路,调整前面的数据使得它还是一个堆,如此循环,得到一个有序的序列。原创 2023-05-27 11:03:51 · 93 阅读 · 0 评论 -
基本的排序算法
算法思想:将相隔为d(d=n/2)的元素进行插入排序,然后d=d/2在进行插入排序,直到d=1。这样咋一看好像和之前的排序没啥区别,甚至更加繁琐,但本质是为了让原本无序的数组在一定范围内变得相对有序,这样移动元素时会减少移动的次数,从而减少时间复杂度,所以它的时间复杂度其实和数组的无序程度有关,数组越无序,时间复杂度越低,数组越有序,时间复杂度越高,在n^1.3~n^2之间代码如下d >= 1;d /= 2)//这里的排序要好好琢磨一下,是按照顺序每次将tmp和与它相隔d的倍数的元素进行排序。原创 2023-05-20 11:42:06 · 786 阅读 · 0 评论 -
栈和队列的实现
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。进出数据的一端被称为栈顶,相对地,把另一端称为栈底。遵循后进先出(又称 先进后出)的原则。原创 2023-05-15 22:49:59 · 104 阅读 · 0 评论 -
最复杂链表---带头双向循环链表
带头双向循环链表原创 2023-05-10 22:03:12 · 71 阅读 · 0 评论 -
资源管理器
实现两种创建方式:一是输入边创建树、二是根据树对应的二叉树的先序遍历字符串创建树。根据输入的目录名和文件名建立目录树。显示指定文件或目录所在的全路径。采用树的孩子兄弟链表存储结构。采用凹入法显示目录树。原创 2023-05-03 15:17:00 · 395 阅读 · 2 评论 -
线索二叉树的特殊遍历方法
这里不知道线索二叉树和其创建方法的可以看我之前的二叉线索树的创建。原创 2023-04-29 19:23:50 · 71 阅读 · 1 评论 -
二叉线索树的创建
在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。原创 2023-04-28 20:43:18 · 187 阅读 · 1 评论