数据结构
文章平均质量分 84
hallelujah...
记录成长
坚持更新
终身学习
展开
-
【数据结构初阶】二叉树(2)
现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。(2)使用向下调整,从倒数第一个非叶子节点开始,即最后一个节点的父亲,即[(size-1-1)/ 2 ]【找到这个父亲的节点,向下排序,然后这个父亲节点依次减一【就找到各个小堆,依次向下排序,就成为了一个堆。删除堆是删除堆顶的数据,将堆顶的数据根最后一个数据一换,然后删除数组最后一个数据,再进行向下调整算法。原创 2023-12-26 15:30:37 · 4260 阅读 · 67 评论 -
【数据结构初阶】二叉树(1)
通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。1.某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( ):若一个节点含有子节点,则这个节点称为其子节点的父节点;:以某节点为根的子树中任一节点都称为该节点的子孙。:一个节点含有的子树的根节点称为该节点的子节点;:度为0的节点称为叶节点;:一个节点含有的子树的个数称为该节点的度;:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;原创 2023-11-26 18:51:56 · 2067 阅读 · 40 评论 -
【数据结构初阶】栈和队列
队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。通读全文的你肯定收获满满,让我们继续为数据结构学习共同奋进!栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有。FIFO(First In First Out) 入队列:进行插入操作的一端称为。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。原创 2023-11-22 19:43:35 · 2054 阅读 · 96 评论 -
【数据结构初阶】双链表
💘不知不觉,【数据结构初阶】双链表 以告一段落。通读全文的你肯定收获满满,让我们继续为数据结构学习共同奋进!原创 2023-11-20 22:05:41 · 1625 阅读 · 92 评论 -
【数据结构初阶】单链表(附全部码源)
这样写虽然把pos位置后面的节点从链表中剔除出去了,但并没有真正意义上的实现删除,因为每一个节点都是通过malloc在堆上申请的,不使用的时候要主动的去释放掉,也就是free掉,把这块空间归还给操作系统,否则会导致内存泄漏。需要注意的是空链表和只有一个节点的链表的情况,空链表无法进行尾删,而只有一个节点的链表在尾删后会变成一个空链表,这意味着要改变头指针里面存放的地址,所以尾删形参也要传递二级指针。先让newnode的指针域存储pos后一个节点的地址,再让pos的指针域存newnode的地址。原创 2023-11-17 16:33:10 · 1475 阅读 · 104 评论 -
【数据结构初阶】链表OJ
💘不知不觉,【数据结构初阶】链表OJ以告一段落。通读全文的你肯定收获满满,让我们继续为数据结构学习共同奋进!定义快慢指针,使快指针先走与慢指针同步。然后同时走看是否相交。题目解析:把原链表遍历一遍,插入新链表。原创 2023-11-15 17:24:15 · 1489 阅读 · 99 评论 -
【数据结构初阶】顺序表
💘不知不觉,【数据结构初阶】顺序表和链表(1)以告一段落。通读全文的你肯定收获满满,让我们继续为数据结构学习共同奋进!顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以。是n个具有相同特性的数据元素的有限序列。用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…动态顺序表:使用动态开辟的数组存储。原创 2023-10-25 09:36:58 · 1513 阅读 · 107 评论 -
【数据结构初阶】算法的时间复杂度和空间复杂度
一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。在计算机发展的早期,计算机的存储容量很小。实例5基本操作执行最好N次,最坏执行了(N*(N+1)/2次,通过推导大O阶方法+时间复杂度一般看最。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。实例4基本操作执行最好1次,最坏N次,时间复杂度一般看最坏,时间复杂度为 O(N)实例1基本操作执行了2N+10次,通过推导大O阶方法知道,时间复杂度为 O(N)原创 2023-10-24 09:51:49 · 1011 阅读 · 95 评论