首页 > 其他分享 >数据结构基础的学习

数据结构基础的学习

时间:2024-07-28 14:24:32浏览次数:18  
标签:链表 存储 线性表 ai 元素 基础 学习 数据结构 数据

数据结构:相互之间存在一种或多种特定关系的数据元素的集合。

逻辑结构:

集合:所有数据在同一个集合中,关系平等。

线性:数据和数据之间是一对一的关系

树:一对多

图:多对多

物理结构(在内存当中的存储关系):

顺序存储:数据存放在连续的存储单位中。逻辑关系和物理关系一致链式,数据存放的存储单位是随机或任意的,可以连续也可以不连续。

线性表顺序存储的优点,缺点

优点

    1,无需为表中的逻辑关系增加额外的存储空间

    2,可以快速随机访问元素O(1)

缺点

    1,插入,删除元素需要移动元素o(n)

    2,无法动态存储。

线性表的链式存储

    解决顺序存储的缺点,插入和删除,动态存储问题。

特点:

    ,线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续。可以被存储在任意内存未被占用的位置上。

   

    所以前面的顺序表只需要存储数据元素信息就可以了。在链式结构中还需要一个元素存储下一个元素的地址。

   

    为了表示每个数据元素,ai与其直接后继数据元素ai+1之间的逻辑关系,对ai来说,除了存储其本身的信息外,还需要存一个指示器直接后续的信息。把存储元素信息的域叫数据域,把存储直接后继位置的域叫指针域。这两部分信息组成数据元素ai的存储映像,叫结点(Node);

    顺序表和链表 优缺点

    存储方式:

       顺序表是一段连续的存储单元

       链表是逻辑结构连续物理结构(在内存中的表现形式)不连续

    时间性能,

       查找 顺序表O(1)

            链表  O(n)

       插入和删除

           顺序表 O(n)

           链表   O(1)

          

    空间性能

           顺序表 需要预先分配空间,大小固定

           链表, 不需要预先分配,大小可变,动态分配

          

          

    循环链表

       简单的来说,就是将原来单链表中最有一个元素的next指针指向第一个元素或头结点,链表就成了一个环,头尾相连,就成了循环链表。circultlar linker list.

      

       注意非空表,和空表。多数会加入头结点。

       原来结束的条件是

       p->next != NULL ------->>>>> p-next != Head

Tcp套接字也是队列

标签:链表,存储,线性表,ai,元素,基础,学习,数据结构,数据
From: https://blog.csdn.net/m0_56701519/article/details/140750424

相关文章

  • 数据结构的学习2
    树:n(n>=0)个结点的有限集合。n=0,空树。在任意一个非空树中,1,有且仅有一个特定的根结点2,当n>1时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每一个集合又是一个树,并且称谓子树。结点拥有子树的个数称谓结点的度。度为0的结点称谓叶结点。度不为0,称谓......
  • MSPM0G3507外设DMA学习笔记
    概述变量的存储正常情况下,变量存储在SRAM中,如果要发送该变量的值到外设,需要调用内核操作,使SRAM中的数据送到外设。此类型操作过多会导致占用CPU高,整体卡顿。DMA控制概述DMA:DirectMemoryAccess专门用于数据传输,解放CPU对于DMA,CPU首先启动传输,然后在传输过程中执行其......
  • 嵌入式学习第五天:逻辑运算、选择语句...
    目录c语言流程控制关系运算符逻辑运算符&&逻辑与||逻辑或判断闰年!逻辑非逻辑表达式选择语句if语句形式1形式2形式3条件运算switch语句c语言流程控制顺序结构选择结构(分支结构)循环结构任何一个程序都是由这三种结构组合而成。通过比较提供判断的依据,进......
  • 深度学习环境配置——总结下近期遇到的”坑“
    文章目录1.问题1:硬件选择的误区2.问题2:操作系统的适配难题3.问题3:深度学习框架的安装陷阱4.问题4:CUDA与cuDNN的版本匹配问题5.问题5:网络配置的瓶颈6.问题6:数据预处理的技巧7.问题7:模型调优的策略8.问题8:资源管理的艺术9.问题9:版本控制的重要性10.问题10:安全性......
  • 音频编码基础详解
    音频编码是将音频信号转换成数字数据的过程,使其能够在计算机系统中存储、处理和传输。音频编码的目的是在保持音质的同时,尽可能地减少数据量。以下是音频编码的详细讲解:音频编码的基本原理采样:将连续的模拟音频信号转换成离散的数字信号。每秒钟对音频信号进行的采样次数称为采......
  • 视频解码基础讲解
    视频解码流程视频解码的具体步骤如下:查找指定的解码器avcodec_find_decoder根据指定的解码器ID初始化相应裸流的解析器av_parser_init分配解码器上下文avcodec_alloc_context3打开解码器和关联解码器上下文avcodec_open2读取原始裸流fread解析出一个完整的数据包av_p......
  • 音频解码基础讲解
    音频解码流程音频解码的总体流程如下:输入音频格式(例如AAC)通过音频解码器进行解码得到PCM数据FFmpeg解码流程音频解码的具体步骤如下:查找指定的解码器avcodec_find_decoder根据指定的解码器ID初始化相应裸流的解析器av_parser_init分配解码器上下文avcodec_alloc_conte......
  • markdown学习
    Markdown学习字体hello,world!hello,world!hello,world!hello,world!引用永远只跟昨天的自己比较分割线图片![截图](C:\Users\Lenovo\Pictures\CameraRoll\v2-01888c7057bbf722bc664de16d68ac0f_720w.webp)超链接点击跳转到列表A[1.]+[空格]BC​......
  • 学习STM32的LED点阵显示
    学习STM32的LED点阵显示内容需要涉及到几个方面:硬件准备、软件工具、基本原理以及代码实例。下面我将详细介绍每个方面的内容。一、硬件准备选择合适的开发板:根据自己的需求和预算选择一款适合的开发板。常见的STM32开发板有STM32F103系列、STM32F407系列等。连接LED点阵:将LE......
  • 学习STM32的人体活动传感器
    人体活动传感器(HumanActivitySensor)是一种用于检测和测量人体活动的设备。它可以通过监测人体的运动、姿势和生理变化来识别和分析人体的活动状态。在STM32学习中,我们可以使用不同的传感器,如加速度计、陀螺仪和心率传感器来实现人体活动的监测和分析。本文将详细介绍如何使用......