码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数据结构】一文了解链表【思路+例题学习】


    🏆今日学习目标:
    🍀学习算法-数据结构-链表
    ✅创作者:贤鱼
    ⏰预计时间:30分钟
    🎉个人主页:贤鱼的个人主页
    🔥专栏系列:算法
    🍁贤鱼的个人社区,欢迎你的加入 贤鱼摆烂团

    请添加图片描述

    链表

    • 🍁链表
      • 🍀介绍🍀
      • 🍀分类🍀
        • 🍉单项链表🍉
        • 🍉循环链表🍉
        • 🍉双向链表🍉
    • 🍁常见操作🍁
      • 🍀链表🍀
      • 🍀迭代器🍀
    • 🍁例题🍁
      • 🍀队列安排🍀
        • 🍎题目描述🍎
        • 🍎输入格式🍎
        • 🍎输出格式🍎
        • 🍎样例 #1🍎
          • 🍍样例输入 #1🍍
          • 🍍样例输出 #1🍍
        • 🍎提示🍎
      • 🍀思路🍀
      • 🍀做法1🍀
      • 🍀做法2🍀
    • 🏆结束语🏆

    🍁链表

    🍀介绍🍀

    链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

    每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

    🍀分类🍀

    🍉单项链表🍉

    在这里插入图片描述

    每一个单元都指向下一位

    在这里插入图片描述

    🍉循环链表🍉

    在这里插入图片描述

    和单链表差不多,只不过第一位和最后一位相连,变成了循环链表

    🍉双向链表🍉

    在这里插入图片描述

    🍁常见操作🍁

    🍀链表🍀

    头文件

    #include

    插入

    前方插入push_front(数字)
    在链表最前面插入一个数字
    后方插入push_back(数字)
    链表最后面插入一个数字
    中间插入insert(迭代器,数字)
    在迭代器指向的链表元素前面插入一个数字

    删除

    erase(迭代器)
    删除迭代器指向的链表元素

    查找

    begin()
    链表头
    end()
    链表末尾
    需要迭代器储存

    输出

    需要迭代器,后文会讲

    结构体模拟部分看例题解法2

    🍀迭代器🍀

    list::iterator 名字

    迭代器是一种检查容器内元素并遍历元素的数据类型
    可以理解为数组的下标
    举个例子

    list<int>::iterator pos[10005];
    list<int> m;
    pos[5]//迭代器代表的内容就是链表中元素为5的部分
    list<int>::iterator iterbegin;
    iterbegin=m.begin();
    cout<<*iterbegin;//输出链表第一位数值
    //循环
    list<int>::iterator iterend;
    iterend=m.end();
    for(;iterbegin!=iterend;iterbegin++){
       
    //内容
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    循环也很好理解

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    只有当begin=end的时候循环就会结束

    🍁例题🍁

    🍀队列安排🍀

    🍎题目描述🍎

    一个学校里老师要将班上 N N N 个同学排成一列,同学被编号为 1 ∼ N 1\sim N 1∼N,他采取如下的方法:

    1. 先将 1 1 1 号同学安排进队列,这时队列中只有他一个人;

    2. 2 − N 2-N 2−N 号同学依次入列,编号为 i i i 的同学入列方式为:老师指定编号为 i i i 的同学站在编号为 1 ∼ ( i − 1 ) 1\sim(i-1) 1∼(i−1) 中某位同学(即之前已经入列的同学)的左边或右边;

    3. 从队列中去掉 M ( M < N ) M(MM(M<

  • 相关阅读:
    sqli-labs部分关思路
    函数式编程:Flutter&Dart中的组合
    SpringMVC中文件的上传与下载
    IIS重定向--微信小程序https访问nodejs搭建的服务器组成物联网平台
    数据结构与算法(java)--排序算法及查找
    为什么分片,尽量选择客户端分片架构
    PhiData 一款开发AI搜索、agents智能体和工作流应用的AI框架
    Mybatis学习|Mybatis缓存:一级缓存、二级缓存
    设计一个缓存策略,动态缓存热点数据
    linux0.11-内核信号
  • 原文地址:https://blog.csdn.net/m0_66623111/article/details/127604200
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号