数据结构
文章平均质量分 86
东区东区!
记录学习C++全过程,就当做笔记了,欢迎交流
展开
-
【数据结构】排序(3)归并排序及所有排序总结
一、归并排序基本思想:建立在归并操作上的一种有效排序算法,来源于分治法。将以有序的子序列合并,得到完全有序的序列即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并1.思路1.将区间中的元素划分为左右均等的两部分 [left, mid) 和 [ mid , right)坐半侧: [left, mid) 有半侧:[ mid , right)2.递归将左半侧右半侧排好3.将左半侧 和右半侧 两个有序的序列归并为一个{{return;}原创 2022-10-30 20:51:03 · 381 阅读 · 0 评论 -
【数据结构】排序(2)快速排序
快速排序(效率最高)所有排序算法中面试官让写概率最高的快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法其基本思想为:假设排升序:1.任取待排序元素序列中的某元素作为基准值,按照该基准值将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值原创 2022-10-30 14:16:43 · 366 阅读 · 0 评论 -
【数据结构】排序(1)插入排序、选择排序
排序在面试中属于高频考点,需要熟练掌握本篇内容学习插入排序和选择排序排序:将一组集合中的数据按照从小到大(升序)或从大到小(降序)进行组织即可。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i ]=r[ j ],且r[ i ]在r[ j ]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。原创 2022-10-27 18:00:17 · 329 阅读 · 0 评论 -
【数据结构】二叉树链式存储结构
手动快速创建一棵简单的二叉树,快速进入二叉树 操作学习学习二叉树结构,最简单的方式就是遍历。所谓访问结点所做的操作依赖于具体的应用问题。遍历是二叉树上最重要的运算之一,也是二叉树上进行其它运算的基础:1.1.前序遍历亦称先序遍历)——访问根结点的操作发生在遍历其左右子树之前。递归前序遍历顺序: 1- 2 - 3 -空 -空- 空 4 - 5 -空 -空- 61.2.中序遍历访问根结点的操作发生在遍历其左右子树之中(间)。上图中序遍历 顺序: 3 2 1 5 6 41.3后序遍历。原创 2022-10-13 19:00:11 · 1307 阅读 · 0 评论 -
【数据结构】二叉树的顺序结构实现以及堆的实现应用
普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而堆(一种二叉树)总结:1.首先要是完全二叉树2.完全二叉树中的结点必须满足:a 如果任意节点都比其孩子节点小,将其称作小堆(小根堆)b 如果任意节点都比其孩字节点大,将其称作大堆(大根堆)(根节点要不是最小的,要不是最大的)堆的性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。练习1.下列关键字序列为堆的是:()AA100,60,70,50,32,65。原创 2022-10-11 19:36:51 · 451 阅读 · 0 评论 -
【数据结构】二叉树基础
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1原创 2022-10-05 15:27:09 · 74 阅读 · 0 评论 -
【数据结构】队列的知识点
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为出队列:进行删除操作的一端称为。原创 2022-09-29 17:16:07 · 602 阅读 · 0 评论 -
【数据结构】 栈的知识点
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。栈中的数据元素遵守LIFO()的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,。出栈:栈的删除操作叫做出栈。原创 2022-09-24 19:06:09 · 968 阅读 · 0 评论 -
【数据结构】 双向循环链表链表的实现
/任意位置删除插入。只需要将头节点创建好,然后通过形参带进去---》形参必须要用二级指针。将新节点插入到Pos之前(注意先将新节点链接进去,在断开原链表)尾插时的head就相当于任意位置插入时的pos。2.其中一条链表带环,另一个链表不带环。原创 2022-09-21 10:23:36 · 461 阅读 · 0 评论 -
【数据结构】单链表经典面试题10道及详细思路代码
快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表其实位置开始运行,如果链表带环则一定会在环中相遇,否则快指针率先走到链表的末尾。1.找到链表的中间节点,从中间节点的位置将链表分开,形成2个链表---->找中间节点:采用快慢指针ok。一次,之间的距离就缩小一步,不会出现每次刚好是套圈的情况,因此:在满指针走到一圈之前,2.遍历原链表,将链表中的节点往两个新链表中尾插--新链表最好将其给成带头节点的单链表。1.创建两个链表,一个链表尾插值小于x的节点,另一个链表中插值大于等于x的节点。...原创 2022-08-27 16:11:02 · 972 阅读 · 1 评论 -
【数据结构】 单链表:无头+单向+非循环链表增删查改实现
链表的学习,要多画图,分析其中的逻辑关系,便于理解下面是对单链表所有操作的代码以及详细注释,便于复习我们对【无头+单向+非循环】链表实现增删查改的功能分别进行代码实现,并对步骤尽可能进行详细分析。原创 2022-08-22 08:59:12 · 144 阅读 · 0 评论 -
【数据结构】 链表知识点及实现
链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的1.链式结构在逻辑上是连续的,物理上不一定连续2.现实结点一般从堆上申请3.申请的空间一般按照一定的策略来分配原创 2022-08-19 13:15:08 · 311 阅读 · 0 评论 -
【数据结构】 顺序表
线性表()是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储二、顺序表顺序表是用一段的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为1.。(不推荐)2.静态顺序表只适用于确定知道需要存多少数据的场景。...原创 2022-07-28 16:47:58 · 159 阅读 · 0 评论 -
【数据结构】时间复杂度和空间复杂度
在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。即:找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度...原创 2022-07-27 17:57:30 · 401 阅读 · 0 评论