数据结构与算法
文章平均质量分 88
总结常见算法和基础的数据结构,使用语言c/c++
heoal_Y
在校大一,目前主要学习大方向为c++和linux以及一些数据结构,算法等,希望一起学习交流~~~
展开
-
痛苦“浅尝”八大排序
这里提一下,默认排序都排成升序。原创 2024-02-21 19:11:03 · 918 阅读 · 15 评论 -
堆的结构实现与应用
我们只要记住关键的两点:1.堆必须是完全二叉树。2.堆要么是大堆,要么是小堆。原创 2024-02-20 17:29:56 · 1099 阅读 · 6 评论 -
二叉の树---version C
先来简单的看一个例子,我们从图形中引出一些概念:a.如图是一个简单的二叉树,并在每个节点给上了数值。b.根节点:图中最顶端的顶点,也可以叫其它子节点的父节点。(具体的兄弟节点等等字面意思即可猜出)c.度:某个节点的子节点的个数,最大度为2,即最多有两个孩子。d.叶子节点:度为0的节点,如图中的3,7,5,6。先了解这么多,我们再来想一下如何达到让每个节点可以有左右两个子节点呢?以此联想到结构体嵌套自己的用法:结构就是:每个节点都由指向左子树的指针,指向右子树的指针和数据构成。原创 2024-02-17 18:06:49 · 665 阅读 · 6 评论 -
队列——手搓のqueue
继上一节的栈,本篇介绍数据结构中的队列,相比于栈稍复杂一点,但实现起来还是不难的。原创 2024-02-14 18:40:52 · 330 阅读 · 6 评论 -
栈——手搓のstack
栈和队列的存储结构都很简单,主要看你怎么实现:再结合官方文档:栈的结构就浮现出来了:遵循后进先出的理念,入栈或称压栈时放到栈底,计top为栈顶元素,每进一个元素top就++,但是栈实际还是对数组的管理,所以top作为下标,并在开始初始化为0,就代表着如果入栈一个元素,top就是1,但是top是指向栈顶元素的下一个,但这个1就代表着是1个元素,当然如果想让top更符合1就是指向栈顶元素的话,就可以初始化为-1,本篇采用初始化为0的写法。原创 2024-02-14 13:02:38 · 629 阅读 · 7 评论 -
“车裂”链表---双向带头循环链表
一样需要注意要返回新的节点就要动态开辟出来,因为节点是一个局部的指针,开辟出来就让它放在堆区了,就可以直接返回了(后面c++有了传引用返回与new会更方便。原创 2024-02-04 17:02:19 · 715 阅读 · 5 评论 -
“车裂”链表---单链表
这里需要解释的只有,typedef的int,因为存储的数据不一定是整型,所以为了以后的修改不比要每个地方都改,所以用typedef。原创 2024-02-02 18:13:26 · 738 阅读 · 5 评论