当前位置: 首页 > news >正文

数据结构,及分类(存储分类、逻辑分类)介绍

一、数据结构:

        数据是软件开发的核心。在软件开发过程中基本上就是对数据的新增、删除、修改、查看的操作。

        如何合理存储数据,如何有效提升数据操作开发效率,都是软件开发中的重中之重。使用合理的数据结构是非常重要的。

1.1简介:

        数据结构(Data Structure):计算机存储数据、操作数据的方式。将这些数据按照特定结构组成一个集合。

        数据结构是一种宏观概念,其中包含很多具体的数据结构。

        例如:数组、链表、堆、栈、队列、树、图、散列表等,每一种数据结构都有自己的优缺点。

1.2分类介绍:

数据结构可以按照存储结构分类,也可以按照逻辑进行分类;

1.2.1存储分类:

顺序存储结构:

        数据存储到一块连续的空间。例如:数组,List集合(底层数组)

        优点:地址连续,遍历效率高;可以随机访问

        缺点:插入或删除的效率低(需要移动数组,如果数据量大效率很低)

链式存储结构:

        数据存储到非连续的空间中。每个数据存储者后面数据的地址,形成链式结构。

        优点:插入或删除效率高。只需要修改存储的地址。

        缺点:地址非连续,遍历效率低。丧失随机访问数据能力。

索引存储结构:

        除存储的数据之外,还存储索引表存储数据的索引信息。MySQL数据库、MongoDB数据库等存储工具都支持索引。

散列表(Hash)存储结构:

        散列表存储结构是对数据进行计算,直接得到数据存储时的内存地址。使用顺序结构和链式结构共同实现(数组+链表)。

1.2.2 逻辑分类

        逻辑分类是程序员认为的结构,在计算机中还是按照存储结构分类进行存储的;

        逻辑分类按照前一个数据 和 后一个数据数量对应关系进行的分类。

线性结构(一对一)

        数据与数据之间是线性结构。除首尾不相连其他都是由顺序的。而且是一对一关系。

        线性结构有:数组、链表、堆、栈、队列等都是线性结构

树形结构(一对多)

        数据之间由层次关系。数据是一对多展示的,一个数据后面可以由多个数据,但每个数据前只能有一个数据。

        树形结构有:普通树、二叉树、二叉搜索树、平衡二叉搜索树、红黑树、B树、B+树等

图形结构(多对多)

        数据之间是网状关系结构。数据之间是多对多的关系,也就是说一个数据后面有多个数据,这个数据前面也有多个数据。

http://www.lryc.cn/news/207408.html

相关文章:

  • Powershell脚本自动备份dhcp数据库
  • 第十六章总结:反射和注解
  • mysql 切割字符串函数
  • 汽车发动机电机右盖设计
  • ETHERNET/IP从站转CANOPEN主站连接AB系统的配置方法
  • 人工智能和机器学习:走向智能未来的关键
  • openGauss本地Centos7.6单机安装和简单应用
  • LeetCode--1 两数之和
  • Hafnium安全分区管理器和示例参考软件栈
  • Python解读市场趋势:LSTM 和 GRU 在预测 Google 股价方面的探索
  • vue源码分析(二)——vue的入口发生了什么
  • 系统架构师论文总结【持续更新】
  • STM32-LCD中英文显示及应用
  • 13.4web自动化测试(Selenium3+Java)
  • P1966 [NOIP2013 提高组] 火柴排队
  • Linux文件I/O
  • 卡巴斯基2009杀毒软件
  • Docker 容器服务的注册、发现及Docker安全
  • UE5 Blueprint发送http请求
  • SpringBoot 分布式验证码登录方案
  • vite.config.js文件配置代理设置VITE_APP_BASE_API
  • 优橙内推海南专场——5G网络优化(中高级)工程师
  • 5083: 【递推】走方格
  • 多种方式计算当天与另一天的间隔天数 Java实现
  • Python基础学习004——for循环与字符串
  • 【发展史】鼠标的发展史
  • ThinkPHP6 多应用模式之验证码模块的配置与验证
  • 数据结构笔记——树和图(王道408)(持续更新)
  • Redis 主从
  • 嵌入式学习笔记(63)位操作实战