首页 > 其他分享 >数据结构-基础

数据结构-基础

时间:2023-02-03 17:11:39浏览次数:38  
标签:存储 元素 基础 链表 访问 数据结构 数据 结构

1.什么是数据结构?

数据结构是计算机存储、组织数据的方式。数据结构是指数据之间存在一种换种多种特定关系的数据元素的集合。结构包括物理结构和逻辑结构。

数据逻辑结构包括4种:

集合:数据元素之间除了有相同的数据类型外,无其他关系

线性结构:数据元素是一对一的关系——线性表、队列、堆栈

树形结构:数据元素是一对多的关系

图状结构:数据元素是多对多关系

2.解释下顺序存储和链式存储

顺序存储结构是用一段连续的存储空间来存放数据元素,可以随机访问,访问效率较高;链式存储结构是用任意存储空间来存放数据元素,不可以进行随机访问,访问效率较低。

3.头指针和头节点的区别

头指针:指向第一个节点存储位置的指针,具有标识作用,头指针是链表的必要元素,无论链表是否为空,头指针都会存在。

头结点:是放在第一个元素节点之前,便于在第一个元素节点之前进行插入和删除的操作,头节点不是链表的必要元素,可有可无,头结点的数据域也可以不存储任何信息

4.线性结构的特点

集合中必存在唯一的一个“第一元素”

集合中必存在唯一的一个“最后元素”

除最后元素外,其余元素都有唯一的后继

除第一个元素外,其余元素都有唯一的前驱

5.数组和链表的区别

从逻辑结构看:数据的存储长度是固定的,它不能适应于数据动态增减的情况。链表能够动态分配存储空间以适应数据动态增减的情况,并且更易于插入和删除操作;

从访问方式来看:数组在内存中是一段连续的存储空间,可以通过下标对数据进行随机访问,访问效率高。链表是链式存储结构,存储空间不是必须连续的,可以是任意的,访问必须从前往后依次进行,访问效率相对于数据来看是较低的

如果从第i个位置插入多个元素,对于数据每一次插入都要往后移动元素,每一次时间复杂度是O(n),而对于单链表来说,只需要第一次查找i位置时间复杂度为O(n),其余的删除或者插入操作时间复杂度均为O(1),提高了删除和插入操作次效率。

 

标签:存储,元素,基础,链表,访问,数据结构,数据,结构
From: https://www.cnblogs.com/lingwang3/p/17089895.html

相关文章

  • Redis数据结构
    1.SDSstructsdshdr{//记录buf数组中已使用字节的数量//等于SDS所保存字符串的长度intlen;//记录buf数组中未使用字节的数量intfree;/......
  • 防火墙基础之BGP基础企业网络组网
    防火墙基础之BGP基础企业网络组网原理概述:​防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔......
  • Java基础之面向对象——抽象类、接口、枚举
    抽象类     越是处于顶层定义的类,实际上可以进一步地进行抽象。抽象类里可以有抽象方法(也可以没有)。抽象类完全由子类来实现,父类中不需要提供实现。例如,对于该父类......
  • LeetCode刷题,代码随想录算法训练营Day3| 链表理论基础 203.移除链表元素 707.设计链
    链表理论基础链表是通过指针串联在一起的线性结构,每个节点由一个数据域和一个指针域构成。链表的类型单链表双链表有两个指针域,一个指向下一个节点,一个指向上一个节......
  • gstreamer 基础知识
    Gstreamer基础知识1.Gstreamer组件创建一个Gstelement办法是借助于GstElementFactory工厂对象。//mad是工厂对象的名称decoder是创建出element的名字。e......
  • 网络基础——DNS是什么
    本文不会直接引入复杂枯燥概念,用形象例子通俗讲解,旨在入门理解。DNS作用DNS是用来做域名解析的。相当于把网址翻译成实际ip地址,供其他设备访问。一个例子有一个网站......
  • 【kafka 消息队列&基础命令】
    一、kafka的定义传统定义:kafka是一个分布式的基于发布/订阅模式的消息队列发布订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者......
  • 【java】Java基础之理解Annotation
    一、概念Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员......
  • Linux服务器初始化基础优化
    注意:这里以Centos为主如何最小化安装系统仅安装需要的,按需安装、不用不装,必须安装的有开发包、基本网络包、基本应用包。ssh登录系统策略vim/etc/ssh/sshd_config#......
  • Markdown语法与Typora基础操作学习
    在2.2~2.3的两天时间内,我学习了Markdown语法,并且将其实践于Typora之中。在学习的过程中,Typora带给了我意想不到的惊喜,比起印象笔记和OneNote的功能,Typora丰富的快捷键设置......