C++ 数据结构(一数据结构的概念)

博客主要围绕数据结构展开,介绍了其定义,即互相存在关系的数据元素集合。还阐述了数据结构的分类,包括集合、线性、树形和图形结构。同时说明了数据结构研究重点,涵盖逻辑结构、存储结构(顺序、链式、索引、散列存储)以及数据操作(引用和加工型操作)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天发博留个坑!数据结构和C++学习有些盲目,需要总结一下方法!

————————————————————————————————————————————————————————————————————————————

数据结构定义:

数据结构:数据结构指互相之间存在一种或多种关系的数据元素集合。
数据元素:数据的基本单位(又称元素、节点、顶点、记录等),可由若干个数据项组成。
数据项:分为原子项(性别的男女不能再分)和组合项(不同学生的成绩:物化生 史地政)。
如果不懂得话,点这里你懂的!

————————————————————————————————————————————————————————————————————————————

数据结构分类:

集合结构:

所有元素都属于一个集合。都是数据集合(真TM的废话)。

线性结构:

元素之间一对一的关系(天对地、雨对风、大陆对长空、雷隐隐、雾蒙蒙、山花对海树,赤日对苍穹。。。)。

树形结构:

元素之间一对多的关系 (春天来了,又到了万物复苏的季节,随着湿润季节的来临,万物开始骚动。嗯就是这种对应关系)。

图形结构:

元素之间存在着多对多的关系,树形结构也叫网状结构(雷雨结构)。

————————————————————————————————————————————————————————————————————————————

数据机构研究重点:

数据的逻辑结构

描述数据元素之间逻辑关系,分为:线性和非线性。
空(男人、女人、第三性别 )认识面要广,以前考试总要想到的零!要推广!

线性:

一个首节点,一个尾节点(线性表、栈、队列、串)。

非线性:

一个前驱,多个后继(数组、广义表、树、图)。

数据的存储结构

同一逻辑结构用不同的存储方法,可以得到不同的存储结构(捷安特、美利达不同自行车山地公路性能不一样!一个牌子的不同系列也不一样!)。

顺序存储:

节点间的逻辑关系由单元间的邻接关系体现(也称紧凑结构)。

链式存储:

节点间的逻辑关系由指针表示(借助指示元素存储地址的指针表示数据元素之间的逻辑关系)。

索引存储

所有的存储结点存放在一个区域。另设置一个索引区域存储结点之间的关系(索引存储,分别存放数据元素和元素间关系的存储方式)。

散列存储

数据元素存放在一块连续的存储区域中。数据元素的存放位置是通过一个哈希函数计算而得的。哈希函数将数据元素作为自变量,计算得到的函数值是数据元素的存储地址(索引存储的延伸)。

数据的操作

引用操作(查找等不改变数据节点)加工型操作(增删改查引起结构改变)。

————————————————————————————————————————————————————————————————————————————
内含资源如下: 1.基本数据结构 1.1.Array ........... 动态数组 1.2.LinkedList ... 链表 1.3.BST .............. 二分搜索树 1.4.MapBST ..... 二分搜索树(用于实现映射) 1.5.AVLTree ...... AVL树 2.接口 2.1.Queue ........... 队列接口 2.2.Stack .............. 栈接口 2.3.Set .................. 集合接口 2.4.Map ............... 映射接口 2.5.Merger .......... 自定义函数接口 2.6.UnionFind ..... 并查集接口 3.高级数据结构 3.1.ArrayQueue .......................... 队列_基于动态数组实现 3.2.LinkedListQueue .................. 队列__基于链表实现 3.3.LoopQueue ........................... 循环队列_基于动态数组实现 3.4.PriorityQueue ....................... 优先队列_基于最大二叉堆实现 3.5.ArrayPriorityQueue ............. 优先队列_基于动态数组实现 3.6.LinkedListPriorityQueue ..... 优先队列_基于链表实现 3.7.ArrayStack ............................. 栈_基于动态数组实现 3.8.LinkedListStack ..................... 栈_基于链表实现 3.9.BSTSet ..................................... 集合_基于二分搜索树实现 3.10.LinkedListSet ....................... 集合_基于链表实现 3.11.BSTMap ................................ 映射_基于二分搜索树实现 3.12.AVLTreeMap ....................... 映射_ 基于AVL树实现 3.13.LinkedListMap .................... 映射_基于链表实现 3.14.MaxHeap ............................. 最大二叉堆 3.15.SegmentTree ...................... 线段树 3.16.Trie ......................................... 字典树 3.17.QuickFind ............................ 并查集_基于数组实现 3.18.QuickUnion ......................... 并查集_基于树思想实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Echo一

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

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

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

打赏作者

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

抵扣说明:

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

余额充值