数据结构基础概念

数据结构:表示数据间的关系、数据存储的关系以及数据之间的运算

逻辑结构:数据之间的逻辑关系

存储结构:存储这些数据的存储关系

数据结构就是解决数据之间关系的表示,以及数据在计算机中存储的内容。也可以就是研究非数值型数据之间的关系、存储以及运算。

1. 关系---逻辑结构            就是数据之间的抽象关系(先后、从属、邻接、层次)

四种:集合结构、线性结构、树型结构、图型结构
1. 集合
        所有的数据元素之间没有必然的联系,只有共同的属性、特点
2. 线性
        数据元素之间具有一定的先后顺序
3. 树型
        数据元素之间是一种层次关系,使用从属关系形式
4.
        数据元素之间可能存在多个关系

2. 存储---存储结构            就是数据的逻辑结构在计算机中进行存储方式

四种:顺序存储、链式 ( 离散 ) 存储、索引存储、散列存储
1. 顺序存储
        数据元素存储在一段连续的内存空间,存储数据的位置是连续的( 地址相邻 ) ,把数据元素一个
接一个连续存储。
2. 链式存储
        数据元素的每个元素存储的内存空间不一定是连续的( 地址不一定相邻 ) ;一个数据存在 A 址,一个数据存在B 地址,还是需要把数据串联起来能够表示关系。
3、索存储
        除建立存储结点信息外,还建立附加的索引表来标识结点的地址。索引表由若干索引项组成。
4、散列存储

        散列存储,又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。散列技术除了可以用于查找外,还可以用于存储

3. 运算---数据操作             能够对数据进行操作

增、删、改、查、排序

算法

算法:解决问题的步骤描述,在计算机算法是一个有穷的指令/语句的有序集合

程序:计算机中以计算机语言的具体实现。
区别:算法不一定依赖于计算机语言,是方法描述;程序是必须依赖于计算机语言算法是有穷的,程序可以是无穷的。

1. 算法与数据结构    ----    程序 = 数据结构 + 算法

算法设计:依赖于数据结构的逻辑结构
算法实现:依赖于数据结构的存储结构

2. 算法的效率度量     ----    时间复杂度和空间复杂度

        1、时间复杂度

          事后统计法:把算法实现,进行运行,会得到算法的运行时间,就是算法的消耗时间

          事先估算法(推荐):认为计算机执行指令的时间都是一致的,只需要统计出执行的语句的次数

         所有执行的语句的语句频度之和就是算法的语句执行次数,叫做时间复杂度 T(n),问题规模n

        大O表示法,n趋近于无穷大就是T(n)留下最高次幂如果是常数次,则用大O表示法:O(n) = 1 T(n) = 4

        2、空间复杂度

         占用空间的大小,叫做空间复杂度 S(n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用\[1\]:在C++中,数据结构是指一种组织和存储数据的方式。在这段代码中,使用了结构体来定义一个节点(node),节点包含了两个整数变量x和y。结构体中还重载了小于号运算符,用于比较节点的大小。主函数中使用了优先队列(priority_queue)来存储节点,并按照节点的x值从大到小进行排序。然后通过遍历优先队列,输出节点的x和y值。\[1\] 引用\[2\]:在C++中,vector是一种动态数组容器。它可以根据需要自动调整大小,并且支持多种构造函数。例如,可以使用默认构造函数创建一个空的vector,也可以使用拷贝构造函数将一个vector的元素拷贝给另一个vector。另外,还可以使用带有两个迭代器参数的构造函数,将一个区间内的元素拷贝给vector,或者使用带有一个整数参数和一个元素参数的构造函数,将指定数量的相同元素拷贝给vector。\[2\] 引用\[3\]:这段代码是一个关于图的遍历的例题。首先,根据输入的节点数量n和边的数量m,使用并查集来判断图是否联通。然后,统计图中奇点的数量,如果奇点的数量为0或者2,则存在欧拉回路。最后,根据判断结果输出相应的结果。\[3\] 综上所述,C++中的数据结构基本概念包括使用结构体来定义节点,使用优先队列来排序节点,使用vector来存储动态数组,以及使用并查集来判断图的连通性和欧拉回路的存在性。 #### 引用[.reference_title] - *1* *2* [C++之STL基础概念、容器、数据结构](https://blog.csdn.net/Pxx520Tangtian/article/details/126764518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item] - *3* [c++数据结构-图(详解附算法代码,一看就懂)](https://blog.csdn.net/m0_64036070/article/details/128737229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啵啵520520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值