首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏学习

    【数据结构和队列专题

    前言 上篇博客我们讨论了和队列的有关结构,本篇博客我们继续来讨论有关栈和队列习题 这些题算是经典了 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见 思路已给出,代码如下 对于c语言来说,注意先把写好,写好后再调用的函数,后续c++就不用这么麻烦了 2.用队列实现 这道题就是给你两个队列,通过队列实现一个,我们都知道是后进先出的原则,而队列是先进先出的原则 q2,然后再将还在q1的元素通过出队的方式实现出,若继续入,此刻元素都在q2那么就用q2实现入操作,然后出时,按照上面的操作来回导入就可以了。 ,此刻为空 代码如下 3.用实现队列 两个队列可以实现,那两个如何实现队列那 队列是先进先出原则,那对于来说,后进先出,若两个,将第一个的所有元素全部导入第二个,此刻我们想想比如第一个原本 1,2,3,4,现在导入第二个此刻是不是就是4,3,2,1,此刻第二个若出的话正好符合了队列的先进先出 我们可以在画图看一下 其实对于两个,将第一个导入另一个,原本第一个的元素是后进先出的原则

    28410编辑于 2024-09-25
  • 来自专栏构建FFmpeg Android播放器

    专题结构

    在工作中由于时间关系,写得比较匆忙,想对代码进行整理和完善,自己也一直想能写点东西.所以有了写一个关于ffmpeg专题的想法, 同时对播放器进行完善, 使自己实现的播放器能和MediaPlayer简单切换 专题分为5个部分: 1 播放器基础知识 2 Android基础知识,主要是Android MediaPlayer会涉及到的一些知识 3 Android MediaPlayer的框架流程,代码分析 4 ffmpeg

    36930发布于 2020-04-17
  • 来自专栏学习

    算法专题十: +BFS

    , 如果是+, - 则直接入, 如果是*, / 则运算到顶元素上, 如果为字符则更新字符 第三步: 将数字一一提取出来, 然后直接运算即可. [还是黑盒, 所以我们要运算到前一个字符串的后面, 如果直接遇到字符串, 则提取之后运算到顶元素即可 第三步: 返回我们的顶元素 编写代码: class Solution { public: [0,104] -231 <= Node.val <= 231 - 1 算法思路 依旧是利用层序遍历,但是这⼀次队列里面不单单存结点信息,并且还存储当前结如果在数组中存储所对应的下标(在我们学习数据结构 但是没有问题,因为 • 我们数据的存储是⼀个环形的结构; • 并且题目说明,数据的范围在 int 这个类型的最大值的范围之内,因此不会超出⼀圈; • 因此,如果是求差值的话,我们无需考虑溢出的情况。 总结 使用和广度优先搜索(BFS)算法都是常见的图形和树形结构遍历方法, 希望本文对大家有帮助~

    23110编辑于 2024-10-31
  • 来自专栏sukuna的博客

    数据结构–线性结构专题

    数据结构–线性结构专题 于2020年11月25日由Sukuna发布 1 基础 1.数据,数据元素,数据对象,数据项,数据结构的概念 什么是基本单位,什么是最小单位,什么是所有能输入到计算机中并被计算机程序处理的符号总称 2.结构的分类? 逻辑结构:集合,线性表,树,图 物理结构:顺序存储结构,物理存储结构,索引存储结构,哈希存储结构 3.引用参数:&:可以扩展为指针 4.算法的五个特征 (1)有穷性 (2)可读性 (3)健壮性 (4)可行性 6.空间复杂度分析: (1)递归:有存储,至少 的空间 (2)有递归次数: 2 线性表 1.表长:表长与存储的长度区别,maxlength和size的区别 2.直接前驱后继:首元素没有前驱,尾元素没有后继 3.1 1.先进后出 2.顶和底的定义 3.顶的几个定义法: 和 的上一个单元:空时分别对应-1和0 4.进展顺序判断:第二斯特林数,溢出和下溢的判断 5.符号表达式和代替递归函数 6

    60530编辑于 2022-12-08
  • 来自专栏开源部署

    结构

    1、概述 是一种==“先进后出”==的一种数据结构,有压两种操作方式。 可以把这种数据结构理解成是手枪的弹夹。 压就好比是往弹夹中压子弹。 弹就好比是往子弹中退出子弹。 2、数据结构的代码体现 用LinkedList模拟的数据结构 public class MyStack { private LinkedList link; public MyStack() { link = new LinkedList(); } //压 //每次压倒顶 public void add(Object obj) { link.addFirst (obj); } //弹 //每次从顶取出 public Object get() { // return link.getFirst(); return link.removeFirst

    39920编辑于 2022-09-14
  • 来自专栏全栈程序员必看

    Java结构_java

    大家好,又见面了,我是你们的朋友全君。 Java结构 概念 典型的结构如下图所示:结构只能在一端操作,该操作端叫做顶,另一端叫做底。 结构按照“后进先出”(Last In First Out, LIFO)的方式处理结点数据。 的特点: 其实结构是一种受限制的线性数据结构。 其限制是仅允许在表的一端进行插入和删除运算。 向一个插入新元素又称作进、入或压,它是把新元素放到顶元素的上面,使之成为新的顶元素; 从一个删除元素又称作出或退,它是把顶元素删除掉,使其相邻的元素成为新的顶元素。 所以当前的顺序是: 顶A->B->C->D顶 D执行完, 弹出. C/B/A依次弹出. 所以我们有函数调用的称呼, 就来自于它们内部的实现机制. (通过来实现的) 清楚了上面这个调用流程就应该知道的重要性了吧。在Java中已经跟我们封装好了 Stock类就是结构 的应用 首先了解一下中的常用方法?

    87110编辑于 2022-10-04
  • 来自专栏C++信息学奥赛

    杨校老师课堂备战C++之数据结构结构专题训练题讲解

    校验:遇到右括号就检查顶左括号是否匹配,匹配则出,不匹配则直接判定错误。通过顶指针top(也就是数组的下标)管理元素的入、出操作。 【讲解步骤】整体解题分为3个核心步骤:我们采用数组模拟的方式实现括号匹配数组stack对应的存储空间,每个元素存储左括号[或(变量top作为“顶指针”,存储当前顶的下标初始“结构”构建(左括号入 调度规则:车厢从A→C后不能回A,从C→B后不能回C,本质是“的入不可逆、出不可逆”【讲解步骤】这个题目详细讲解“遍历目标序列a,通过的入/出操作,验证能否依次匹配每个目标车厢”。 top]=c++实现入:先将top上移(顶位置更新),再把当前待入的车厢c存入,最后c自增(指向下一节待调度的车厢)。 出操作——匹配成功,驶出到B当顶stack[top]等于目标a[i]时,说明车站C最前面的车厢正是需要驶出到B的车厢,执行出:用--top实现出:将top下移(顶位置更新,相当于移除顶元素,

    9000编辑于 2026-03-29
  • 来自专栏sukuna的博客

    数据结构–查找专题

    数据结构–查找专题 于2020年11月9日2020年11月9日由Sukuna发布 查找表: 由同一类型的数据元素(记录)组成的集合。 小的往左走,大的往右走,遇到NULL就插入 ASL计算:同查找树 存储结构:跟二叉树一样 查找算法:大的往右,小的往左,找到了返回,遇到NULL就失败 插入算法: 删除算法:在二叉排序树中删除一个结点时

    72720编辑于 2022-12-08
  • 来自专栏叽叽西

    数据结构-结构

    后进者先出,先进者后出,这就是典型的“结构。 从的操作特性上来看,是一种“操作受限”的线性表,只允许在一端插入和删除数据。 如何实现一个“”? 主要包含两个操作,入和出,也就是在顶插入一个数据和从顶删除一个数据。理解了的定义之后,我们来看一看如何用代码实现一个。 实际上,既可以用数组来实现,也可以用链表来实现。 用数组实现的,我们叫作顺序,用链表实现的,我们叫作链式。 不管是顺序还是链式,我们存储数据只需要一个大小为 n 的数组就够了。 代码实现 基于数组实现的 基于链表实现的 使用前后实现浏览器的前进后退 我们使用两个,X 和 Y,我们把首次浏览的页面依次压入 X,当点击后退按钮时,再依次从 X 中出,并将出的数据依次放入 this.backStack.isEmpty(); } } 内容小结 我的代码实现 https://gitee.com/kaiLee/struct/tree/master/src/main/java/com/s3 是一种操作受限的数据结构

    64410编辑于 2022-05-17
  • 来自专栏木杉の小屋

    线性结构-

    中,无论是存还是取,都必须遵循"先进后出原则" ==>是一种只能从表的一端存取数据,且遵循"先进后出"原则的线性存储结构和出:将数据存储到站里面 出:将数据从中间取出 的实现方法 :"特殊"的线性存储结构 1 顺序表 ==> 顺序(顺序存储结构) 2 链表 ==> 链(链式存储结构) 的应用 例: 撤销,返回功能 …等等 二.顺序: // **元素入 // 参数: 存储结构, 顶指针, 数据 // 返回值: 顶指针(需要知道结束入之后顶的位置) int pushElem(int* arr, int top, int val top; } 完整代码+测试: #include // **元素入 // 参数: 存储结构, 顶指针, 数据 // 返回值: 顶指针(需要知道结束入之后顶的位置) int pushElem **元素出 // 参数: 存储结构, 顶指针 // 返回值: 顶指针 int popElem(int* arr, int top); 三.链 一般将链表的头部作为顶 入: // **添加元素

    41740发布于 2021-04-02
  • 来自专栏笔记分享

    线性结构-

    的操作只能在线性表的表尾进行,这个标为被称为顶top,相应的表头被称为底bottom 的数据必须从顶进入,也必须从顶取出,先入的数据在后入的数据下面。 中不含有任何数据时的状态叫作空,此时顶top等于底bottom。 的定义 前面说过,作为一个线性结构既可以用数组实现,也可以用链表实现。 在大多数情况下,我们用数组来实现。 ("There are no elements in stack"); return -111; } return stack[--top]; } 与所有数据结构一样,在执行增删操作之前 当top==0时,内没有元素,pop的操作将是非法的,所以需要返回一个无效值ERROR_ELEM_VALUE,在介绍“线性结构-数组”中,有一道“删除重复元素”的题目,当时将重复元素赋值为-111,也是同样的道理 来两道题 二/十进制转换 利用结构将二进制数转换为十进制数 利用的FILO特点,方便位权运算 首先将二进制数从高位到低位顺序入。然后从顶依次取出每一个元素。

    50920编辑于 2023-07-08
  • 结构(详解)

    中的数据元素遵守后进先出LIFO(Last In First Out)的原则。         压的插入操作叫做进/压/入,入数据在顶。          出的删除操作叫做出。出数据也在顶 2.结构的特点: 后进先出(LIFO):的最显著特点是后进先出的数据访问方式。 而在链式存储中,每个元素都有一个指向下一个元素的指针,形成了一个链式结构。 常见应用:在计算机科学中有着广泛的应用,包括函数调用、表达式求值、语法分析、内存管理等方面。 在算法和数据结构中,也是解决许多问题的重要工具。 内存管理:内存储在程序的运行时空间中,由编译器或解释器负责管理。入和出操作通常比较高效,并且不会导致内存碎片化。          总的来说,是一种简单但功能强大的数据结构,它的后进先出特性使其在许多领域都有着重要的应用。         结构通常是用顺序表来实现的,如果学会了顺序表和链表再来实现结构就行显得简单的多。

    36410编辑于 2025-11-15
  • 来自专栏sukuna的博客

    数据结构–排序专题

    数据结构–排序专题 于2020年11月18日2020年11月18日由Sukuna发布 1.插入排序 算法基本思想 将待排序的记录插入到已排序的子文件中去,使得插入之后得到的子文件仍然是有序子文件 快速排序需要一个空间来实现递归。 若每次划分均能将文件均匀分割为两部分,则的最大深度为|log_2n|+1,所需空间为O(log_2n),即空间复杂度 S(n)= O (log2n)快速排序是不稳定的。

    66920编辑于 2022-12-08
  • 来自专栏QT

    【数据结构】-- 链表专题

    前面我们实现了单链表,单链表只是链表的一种。可以根据以下几个标准来判断链表的类型:

    14610编辑于 2025-12-30
  • 来自专栏Data分析

    python程序的分支结构专题

    python程序的分支结构 前言 程序的分支结构分为三种,分别是单分支结构,二分支结构,多分支结构。同时需要掌握条件判断及组合,程序的异常处理。 在Python的舞台上,分支结构以清晰简洁的语法展现,让你能够以一种直观的方式控制程序的流程。本篇技术博客将引导你深入探索Python程序中的分支结构,为你揭开这个编程世界中的一道神秘面纱。 无论你是初学者还是经验丰富的开发者,理解和灵活运用分支结构是提高代码可读性和功能性的关键一步。我们将深入研究条件语句、循环结构和异常处理,为你呈现一个全面的分支结构指南。 准备好迎接这场代码之旅,让我们一同揭示分支结构的精妙之处,掌握Python编程的更高层次。 一、单分支结构 根据判断条件结果而选择不同向前路径的运行方式。 无论是简单的条件语句,还是复杂的循环结构,每一行代码都是一次选择,每一个分支都是一次决策。通过理解和运用这些分支结构,我们能够使程序在不同的情境下表现出多样性和强大的适应性。

    73910编辑于 2024-01-30
  • 来自专栏学习

    【数据结构】链表专题3

    前言 本篇博客我们继续来讨论链表专题,今天的链表算法题是经典中的经典 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见 欢迎大家点赞收藏⭐文章 1.判断链表是否有环 第三步尾插新链表,将拷贝在原链表的节点尾插新链表,并返回新链表的头结点 代码如下 这道题整体代码如下 相当于三个while嘛,一个while循环一步 结束语 链表有关算法题也就总结完了,从链表专题

    21010编辑于 2024-09-25
  • 数据结构——顺序表专题

    前言 什么是数据结构呢? · 数据结构是由“数据”和“结构”两词组合⽽来。 · 概念:数据结构是计算机存储、组织数据的⽅式。 · 数据结构是指相互之间存在⼀种或多种特定关系的数据元素的集合。 数据结构反映数据的内部构成,即数据由那部分构成,以什么⽅式构成,以及数据元素之间呈现的结构。 线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的线性表:顺序表、链表、、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的⼀条直线。 但是在物理结构上并不⼀定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 这种数据结构在初始化时就确定了存储空间的大小,并在运行期间保持不变。

    10610编辑于 2026-01-14
  • 来自专栏g歌德a

    数据结构树的专题

    void createBT(BiTree *&b, char *s) //用括号表示法的字符串s生成二叉树b { BiTree *st[100], *t; //st存放树结点的 就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。 将左孩子结点的右孩子结点、右孩子结点的右孩子结点……都作为该结点的孩子结点,将该结点与这些右孩子结点用线连接起来; (2)删除原二叉树中所有结点与其右孩子结点的连线; (3)整理(1)和(2)两步得到的树,使之结构层次分明

    55220发布于 2019-12-02
  • 来自专栏Michael阿明学习之路

    数据结构----共享顺序

    共享顺序:内部也是一个数组 将两个放在数组的两端,一个从数组首端开始压,一个从数组尾部开始压,等到两边顶在中间相遇时,满。 共享顺序在某些情况下可以节省空间。 ? STACK_SHARINGSTACK_H #include <iostream> template <class T> class sharingStack { private: int top[2], bot[2]; //双顶指针和底指针 int pop(int stackIndex); //将index号顶元素弹出 T* getTop(int stackIndex); //返回index号顶元素 }; #endif //STACK_SHARINGSTACK_H 共享顺序 类实现 sharingStack.cpp //共享顺序 // Created by mingm on 2019/3/28 5,让#1长度分别为0,3,4,当为4时满溢出。

    73010发布于 2021-02-20
  • 来自专栏学习

    【数据结构】顺序表专题

    前言 本篇文章我们来进行有关顺序表的专题训练,让我们一起来看一下有关顺序表的算法题 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见 欢迎大家点赞收藏⭐文章 1.移除元素 代码如下: 结束语 本篇博客列举了两道有关顺序表的算法题,算是两道经典题了,若有什么问题,可以在评论区交流,下片博客我们继续对链表专题进行补充 OK,感谢观看!!!!

    19610编辑于 2024-09-25
领券