数据结构笔记
济楚纯粹自信
这个作者很懒,什么都没留下…
展开
-
最大堆(heap)的部分基本操作
堆的插入:由于元素的相对大小是未知的,而树在元素插入的前后都是一个最大堆,因此在插入操作中,最重要的一步就是让新插入的元素找到对应的位置,同时保持它经过的子树仍然是一个最大堆。这里由于每一次与新元素并列的另一个子节点是一定比父节点小的,因此只需要考虑新元素与其父节点的大小关系即可。堆的特性决定了它每次删除的元素都是堆的最大的元素,也是堆的根节点。此时堆内的元素数量减一,因此把堆中编号最后的元素拿出来,先放在根节点的位置。之后每次与它的两个子节点作比较,与子节点中较大的且比该元素大的节点交换位置。原创 2023-09-16 11:25:48 · 72 阅读 · 0 评论 -
栈的线性表实现
在初始化、进栈、出栈中形参是Myst类的引用,这是因为以上函数需要对栈做出修改。而栈、返回栈顶元素、返回栈内元素个数等函数内有一个int类的引用,同样出于以上目的。以上代码用一块固定且连续的内存来模拟实现了栈的功能,包括初始化、进栈、出栈、返回栈顶元素、返回栈内元素个数、是否栈空、遍历输出栈内元素等功能。原创 2023-09-15 18:07:59 · 29 阅读 · 0 评论 -
双端队列(Deque)的实现
本文向需要了解“双向队列Deque”的朋友们提供了最基础的代码实现。原创 2023-09-15 01:01:38 · 69 阅读 · 0 评论 -
遍历二叉树(前中后序、层次)
本文是作者按照自己初学时,依照自己的理解写下的二叉树遍历的代码。如有错误,恳请不吝赐教。原创 2023-09-07 13:55:45 · 56 阅读 · 1 评论