
初阶数据结构
文章平均质量分 91
以实例题目代码为基础,讲解基础数据结构的算法思路,在题目中理解,适合新手学习
OKkankan
热爱编程
展开
-
实现二叉树_堆
上面就是对于堆这样一个数据结构中数据的插入、删除、以及如何完成我们想要的大堆还是小堆等,通过算法一一实现。原创 2025-01-20 21:30:34 · 2927 阅读 · 65 评论 -
二叉树_堆
上面通过图片的形式表示出来,大家可能会更清楚一点,首先树中的每一个结点都是一样的结构,有孩子和兄弟,就拿上图来说,首先A的孩子结点指向B,同时B的兄弟结点指向C,这样就可以满足B和C的父节点是A,与树的形状一致,同理B的孩子结点指向D,D的兄弟结点再指向E,E的兄弟结点再指向F,以此类推,我们就可以利用这个方法完成数的结构了。,树形结构中,子树之间不能有交集,否则就不是树形结构;数的结构是有些许复杂的,可能每一个结点可能会有不一样数量的孩子结点等,可能数量会非常多,所以我们来介绍一种比较常用的类型,叫做。原创 2024-12-18 18:39:19 · 1355 阅读 · 107 评论 -
栈和队列(数据结构)
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。原创 2024-11-25 20:29:15 · 1242 阅读 · 112 评论 -
单链表算法题(数据结构)
看到这个题目的时候我们怎么去想呢?如果我们反应快的话,应该可以想到我们可以从1遍历到5然后依次头插,但是其实我们还有更好的办法,就是利用三个指针,如何使用呢?原创 2024-11-11 22:50:06 · 3389 阅读 · 102 评论 -
单链表的实现(数据结构)
我们在上一篇中简单的认识了链表的组成和结构,并打印出链表,那么今天就来具体实现一下单链表对于数据增加、删减、插入等。在实现让任何代码之前,我们都因该将思路理清楚,尾插该注意什么,怎么去是实现?首先一定是要找到最后一个结点,pphead是我们的头结点,我们一贯会将pphead赋给一个新的指针pcur,使用while循环找到最后一个结点,但是如果while里面是pcur的那我们不就直接跳出循环,那我们还怎么找最后一个结点呢?原创 2024-11-05 23:10:42 · 5877 阅读 · 104 评论 -
链表(数据结构)
再上一篇中我们讲到顺序表,但是顺序表也是有很多的问题,像申请的空间过多过少或者增容该才能不浪费空间,今天我们就来认识一个新的知识,叫做链表,链表也是线性表的一种,物理存储结构上非连续、非顺序数据结构的逻辑顺序是通过链表中的指针链接次序实现的。原创 2024-10-30 22:38:34 · 2531 阅读 · 101 评论 -
顺序表(二)(数据结构)
我们看上面的图片,假如现在数组中是1 1 2,现在我们要删除重复项的元素,那么结果应该是1 2,我们可以先使用两个指针,str指向数组的第一个元素,dst指向数组的第二个元素,第一步先将它们两者比较,如果是相等的,仅仅让dst这个指针向后移动一位,再次进行比较,如果此时不相等的话,我们在写算法的时候最重要的是我们的思路,我们该怎么去想,不是为了去解出这个题,而是我们的思路,要扩大我们的思路,多思考,再借鉴别人代码的时候,注意关注的是别人的思路,多多积累一些算法的思路。,返回删除后数组的新长度。原创 2024-10-28 22:14:48 · 2102 阅读 · 78 评论 -
顺序表(一)(数据结构)
比如现在有一个数组包含数据1 2 3 4 ,那么现在我要删除4这个数据,我们知道size是指向有效数据的下一个位置,也就是4的后面一个位置,那么现在我让size--就会让size指向4的位置,当我们打印的时候这个位置的数据就不是有效的数据了,而且在尾部插入数据的时候在空间充足的时候我们是直接将新的数据元素之直接插在size的位置上,然后再让size++。但是在物理结构上并不一定是连续的,物理结构是数据在内存上的存储形式,线性表在物理结构上存储时,通常以数组和链式结构的形式存储。原创 2024-10-23 23:44:10 · 2044 阅读 · 87 评论 -
算法复杂度 (数据结构)
数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以我们要学各式各样的数据结构,如:线性表、树、图、哈希等。原创 2024-10-10 22:01:39 · 3233 阅读 · 124 评论