码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 1. 数据结构


    文章目录

    • 数据结构
      • 一、线性结构和非线性结构
        • 1. 线性结构
        • 2. 非线性结构
      • 二、数组(Array)
        • 1. 定义
        • 2. 初始化数组
      • 2. 链表(Linked List)
      • 3. 栈(Stack)
      • 4. 队列(Queue)
      • 5. 树(Tree)
      • 6. 图(Graph)
      • 7. 堆(Heap)
      • 8. 散列表(Hash Table)
      • 9. 集合(Set)
      • 10. 映射(Map)

    数据结构

    一、线性结构和非线性结构

    1. 线性结构

    1. 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系
    2. 线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的
    3. 链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信
    4. 线性结构常见的有:数组、队列、链表和栈.
    

    2. 非线性结构

    非线性结构包括:二维数组,多维数组,广义表,树结构,图结构
    

    二、数组(Array)

    1. 定义

    1. 数组(Array)是有序的元素序列。 
    2. 数组由相同数据类型的元素组成,并按照一定的顺序排列。每个元素在数组中都有一个唯一的索引值,通过索引值可以访问和操作数组中的元素。数组可以存储多个相同类型的值,例如整数、浮点数、字符串等
    3. 数组具有固定的长度,一旦创建,其大小通常不可改变。数组可以是一维的,也可以是多维的。一维数组是线性排列的元素序列,而多维数组可以看作是多个一维数组的组合。
    

    2. 初始化数组

    public static void main(String[] args) {
        // 1. 直接赋值:在声明数组时,可以直接指定数组元素的初始值。
        int[] numbers1 = {1, 2, 3, 4, 5};
        
        // 2. 使用循环:可以使用循环语句逐个为数组元素赋值,特别适用于大型数组或需要计算初始值的情况。
        int[] numbers2 = new int[5];
        
        // 3. 使用构造函数或创建数组对象:可以使用new关键字创建数组对象,并通过构造函数指定初始值。
        int[] numbers3 = new int[]{1, 2, 3, 4, 5};
    }
    

    2. 链表(Linked List)

    由节点组成,每个节点包含数据和指向下一个节点的指针,可以根据需要插入、删除、遍历。
    

    3. 栈(Stack)

    后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
    

    4. 队列(Queue)

    先进先出(FIFO)的数据结构,只能在队尾插入,在队头删除。
    

    5. 树(Tree)

    层级结构,由节点和边组成,每个节点可以有多个子节点。
    

    6. 图(Graph)

    由节点(顶点)和边组成,节点之间可以是任意连接关系。
    

    7. 堆(Heap)

    可以快速找到最大值或最小值的完全二叉树。
    

    8. 散列表(Hash Table)

    根据关键字(Key)直接访问存储位置,实现高效的插入、查找和删除操作。
    

    9. 集合(Set)

    存储唯一元素的无序容器,支持集合操作(交集、并集、差集)。
    

    10. 映射(Map)

    存储键值对的容器,根据键查找对应的值。
    
  • 相关阅读:
    Spring3新特性:graalvm打包Springboot+Mybatis
    项目完成小结 - Django-React-Docker-Swag部署配置
    flutter 下载获取定位的插件报错
    鲲鹏devkit性能分析工具介绍(三)
    在c#中使用NPOI结合Magicodes.IE.excel将xlsx文件内存中转换为xls文件
    react 网页/app复制分享链接到剪切板,分享到国外各大社交平台,通过WhatsApp方式分享以及SMS短信方式分享链接内容
    SSM《程序设计基础》课程答疑系统的设计与实现 毕业设计-附源码261620
    浅谈三点建议为所有已经毕业和终将毕业的同学
    用HTML5和JavaScript实现黑客帝国风格的字符雨效果
    Python学习:构造函数与析构函数
  • 原文地址:https://blog.csdn.net/yang134679/article/details/139419305
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号