
数据结构与算法
文章平均质量分 91
本专栏是本人学习数据结构的一个过程,将摘录实现各种数据结构的方法,并包含经典的数据结构与算法的题目,欢迎大家借鉴学习
一只没有情感的机器猪
码动青春
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++刷题基本知识(常用函数)
记录了C++刷题过程中的一些基础知识原创 2022-08-15 14:06:32 · 1551 阅读 · 1 评论 -
数据结构——堆
何为堆?堆(heap):一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:有序性:堆中某个节点的值总是不大于或不小于其父节点的值;结构性:堆总是一棵完全二叉树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。举例:注意:从根结点到任意结点路径上结点序列都具有有序性!2.堆的抽象数据类型描述3.堆的基本操作(以具体堆为例)下面以具体代码介绍堆的基本操作,给出了基本思想,代码中含具体注释。3.1 堆原创 2021-01-03 16:58:58 · 892 阅读 · 0 评论 -
二叉搜索树的查找/插入/删除以及二叉树搜索树的建立等基本操作实现的完整代码(可自行调试)
二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树本文用来保存二叉搜索树的查找,插入,删除以及二叉树搜索树的建立等基本操作实现的完整代码:# 直接上代码!详细算法介绍请参考此文:[二叉搜索树的查找/插入/删除以及二叉树搜索树的建立等基本操作的详细介绍](https://blog.youkuaiyun.com/qq_45768060/article/details/106180123)原创 2020-05-18 21:10:27 · 843 阅读 · 0 评论 -
二叉搜索(查找)树的查找/插入/删除以及二叉树搜索树的建立等基本操作的详细介绍
二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树定义二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质:非空左子树的所有结点的值小于其根结点的值。非空右子树的所有结点的值大于其根结点的值。左、右子树都是二叉搜索树。...原创 2020-05-18 21:07:09 · 2385 阅读 · 0 评论 -
二分查找细节处理详细说明,防止bug必备
>总的来说,二分查找思想是简单的,都知道它是那么一回事。但是一到去实际编程,总会冒出几个bug出来。二分查找的细节真的堪比玄学。典型的就比如下面这几个细节:1.整型溢出 >2. mid要加一还是减一还是什么也不做;>3. while的判断是left < right 还是left <= rigth; 做为典型小白吗,头疼了这么久,今天还是来彻底解决下原创 2020-05-09 21:14:52 · 520 阅读 · 0 评论 -
数据结构——顺序表和链表的代码实现及算法思路
线性结构顺序表和链表的实现及各种操作合集一级目录线性表顺序储存的实现结构体的定义顺序表的初始化插入操作删除操作按值查找应用举例删除自第i个元素开始的k个元素链表的实现不含头结点的链表的实现结构体定义线性表的创建线性表的长度计算按序号查找按值查找插入操作删除操作应用举例俩有序链表的合并一级目录线性表顺序储存的实现结构体的定义const int MAX_SIZE=10;struct Sepl...原创 2020-03-25 10:38:26 · 2880 阅读 · 0 评论 -
用链表实现对二进制数加1的运算
题目描述:建立一个带头结点的线性链表,用以存放输入的二进制数,链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。问题分析:①建链表:二进制数可用带头结点的单链表存储,第一个结点存储二进制数的最高位,依次存储,最后一个结点存储二进制数的最低位。②根据二进制加法规则:实现二进制数 加1运算,方向从低位往高位找到第一个值为0的位,,从该位开始,对后面所有低位进行求...原创 2020-03-24 13:07:28 · 1220 阅读 · 3 评论 -
用c++普通语法和模板类实现栈结构
本文运用c++语言实现了栈结构,其中顺序栈是简单的实现,链栈运用了C++模板类。风格不太统一,敬请谅解,有什么不清楚的欢迎提问原创 2020-04-09 16:31:53 · 299 阅读 · 0 评论 -
中缀表达式、后缀表达式以及前缀表达式求值详解
本文运用c++实现了三种表达式求值1.前缀表达式 :直接递归2.后缀表达式:用栈3.中缀表达式:转化为后缀表达式求值原创 2020-04-11 12:29:57 · 2133 阅读 · 0 评论 -
用C++模板类实现队列(含详细注释)
队列是一种先进先出的数据结构:即插入在表的一端(队尾)进行,删除在表的另一端(队头)进行与线性表相似,队列也有顺序储存和链式储存两种储存方法;本文运用C++模板类实现了简单队列原创 2020-04-02 22:12:53 · 4659 阅读 · 1 评论 -
二叉树的层序遍历算法详解
层序遍历: 从二叉树根节点开始,按自上而下、从左到右的顺序进行的遍历。 1. **基本思路**:用队列实现2. **大致过程**:遍历从根结点开始,首先将根结点入队,然后开始执行循环:结点出队、访问该结点、其左右儿子入队3. **层序基本过程**: 先根节点入队,然后:1.从队列中取出一个元素; 2.访问该元素所指结点;3.若该元素所指结点的左、右孩子结点非空,则将其左、右孩子的指针顺序入队。**最后重复1,2,3步直到队列为空。**原创 2020-05-13 09:08:01 · 2699 阅读 · 0 评论 -
二叉树先序中序后序非递归遍历总结,尤其是后序的几种非递归遍历很值得一看
上篇文章 [二叉树的前序中序后序三种遍历方式介绍],给出了三种遍历的递归方法,递归方法虽然简洁,但可读性一般不好执行效率一般也不高。本篇文章就将递归方法变成非递归方法。尤其是后序的非递归遍历,真的很值得多看。原创 2020-05-08 22:26:51 · 508 阅读 · 0 评论 -
二叉树的前序中序后序三种遍历方式及递归算法介绍
二叉树的遍历是整个二叉树的核心,二叉树的几本操作都要依赖于遍历,对于二叉树的遍历,递归是最简单也最容易理解的,本文详细介绍了二叉树的三种遍历方法,并用递归来实现:原创 2020-04-27 16:01:49 · 3207 阅读 · 0 评论 -
包含二叉树全部操作的代码及其注释(从二叉树的建立,到七种遍历方式,再到各种操作)
本程序集二叉树各种操作于一体1.递归形式的前序遍历,中序遍历,后序遍历2.非递归形式的前序遍历,中序遍历,后序遍历3.二叉树的建立4.二叉树上各种操作的实现读者可以直接根据函数头和说明直接调用或者调试,对每种操作的算法解释,在其它的博客中,欢迎借鉴学习原创 2020-04-27 22:36:46 · 591 阅读 · 1 评论