文章 2023-09-08 来自:开发者社区

【数据结构】带头双向循环链表---C语言版(单链表我们分手吧,不要再找我玩了!!!)(一)

一、前言在前面我们学习实现了单链表(无头单向不循环链表),这里我们引入带头双向循环链表很明显这两种链表的结构截然不同,但都是作为链表最常使用链表结构前者因其结构上的缺点而作为面试考题的常驻嘉宾,而且复杂麻烦后者则是以结构最优著称,实现起来也是非常的简单(少了单链表头节点,尾节点,前一节点等问题的困扰),可以说是最屌的链表结构二、链表的分类1. 单向或者双向链表单向:节点结构中只存在下一节点的地址....

【数据结构】带头双向循环链表---C语言版(单链表我们分手吧,不要再找我玩了!!!)(一)
文章 2023-09-08 来自:开发者社区

【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(二)

⭕接口7:头删(SLTPopFront)要注意头删有三种情况:1.没有结点(空链表)、2.一个结点、3.多个结点链表为空不能头删,所以要进行assert断言请看代码与注释//头删 void SLTPopFront(SLTNode** pphead) { //没有结点(空链表) assert(*pphead); //链表为空,不能头删 assert(pphead); //一个结点...

【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(二)
文章 2023-09-08 来自:开发者社区

【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(一)

一、前言终于放假啦!停更了两个月,在假期要把欠下的补回来&有规律的学习!本篇文章来自《数据结构与算法》 专栏,本篇的内容是单链表的学习,也是数据结构的基础,希望烙铁们可以理解消化哦!!!二、单链表与顺序表的区别1.存储形式上的区别顺序表 在物理上和逻辑上都是连续的单链表 在物理上是不连续的,在逻辑上是连续的2.空间上的区别顺序表一般有固定的空间大小,当空间不够时需要进行扩容,扩容时往往不....

【数据结构】单链表---C语言版(全网最最最最细!小白必必必必看!!!有图有真相!)(一)
文章 2023-08-08 来自:开发者社区

[数据结构 -- C语言] 二叉树(BinaryTree)3

4.2.4 层序遍历实现代码对队列还有不清楚的同学可以看看这篇文章,队列是一篇完整的文章哦,点后面文字跳转,https://blog.csdn.net/Ljy_cx_21_4_3/article/details/130739681// 层序遍历 void BinaryTreeLevelOrder(BTNode* root) { Queue q; QueueInit(&q); ...

[数据结构 -- C语言] 二叉树(BinaryTree)3
文章 2023-08-08 来自:开发者社区

[数据结构 -- C语言] 二叉树(BinaryTree)2

2.3 二叉树的性质(很重要)1. 若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有 2^(i-1) 个结点.2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是 2^h - 1.3. 对任何一棵二叉树, 如果度为0其叶结点个数为 n0, 度为2的分支结点个数为 n2,则有 n0= n2 +14. 若规定根节点的层数为1,具有n个结点的满二叉树的深度,h= log 2(n+1)....

[数据结构 -- C语言] 二叉树(BinaryTree)2
文章 2023-08-08 来自:开发者社区

[数据结构 -- C语言] 二叉树(BinaryTree)1

本篇我们来到了一个新的节点,二叉树,在讲二叉树前我们先来了解一下什么是树。1、树的概念及结构1.1 树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。1.有一个特殊的结点,称为根结点,根节点没有前驱结点;2.除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2....

[数据结构 -- C语言] 二叉树(BinaryTree)1
文章 2023-08-08 来自:开发者社区

[数据结构 -- C语言] 堆实现Top-K问题,原来王者荣耀的排名是这样实现的,又涨知识了

TopK问题的引入:大家在玩王者荣耀的时候都遇到过xxx市第xxx某英雄,xxx区第xxx某英雄。或者是今天我们点外卖的时候想吃某个食物,我们打开美团/饿了么,选离自己最近的选项或者评分最高的选项就会将你所选的店铺的前x名按顺序排出来。福布斯排行榜前10名,胡润富豪排行榜前5名等等。这些问题都是需要对大量的数据排序,选出最大的前K个,这里就用到了TopK算法来解决这一类问题。1、什么是Top-K....

[数据结构 -- C语言] 堆实现Top-K问题,原来王者荣耀的排名是这样实现的,又涨知识了
文章 2023-08-08 来自:开发者社区

[数据结构 -- C语言] 堆(Heap),你小子就是堆,看我如何透彻的将你拿捏

1、堆的概念及结构1.1 概念(概念总是重要的)上面这一段是堆的概念,但是这也太没劲了吧,我们来通俗的讲一下,敲黑板了嗷:堆的本质是一个完全二叉树。大堆(也叫大根堆):父节点大于/等于子节点。小对(也叫小根堆):父节点小于/等于子节点。如果不满足上面的条件,那么就不是堆。堆的性质:1、堆中某个节点的值总是不大于或不小于其父节点的值;2、堆总是一棵完全二叉树。1.2 结构,分为两种1.2.1 小堆....

[数据结构 -- C语言] 堆(Heap),你小子就是堆,看我如何透彻的将你拿捏
文章 2023-08-08 来自:开发者社区

[数据结构 -- C语言] 队列(Queue)

1、队列1.1 队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头2、队列的实现队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。本篇文章就是用链表实....

[数据结构 -- C语言] 队列(Queue)
文章 2023-08-08 来自:开发者社区

[数据结构 -- C语言] 栈(Stack)

1、栈1.1 栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。我们以生活中的事物来理解一下栈:糖葫芦串糖葫芦的时候是最后一颗糖葫芦先串....

[数据结构 -- C语言] 栈(Stack)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注