博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(二)算法基础-数据结构简介
阅读量:5756 次
发布时间:2019-06-18

本文共 1159 字,大约阅读时间需要 3 分钟。

目录

  1. 什么是数据结构?
  2. 常见的数据结构有哪些?
  3. 数据结构的逻辑结构分类有哪些?
  4. 数据的存储结构有哪几种?

1、什么是数据结构?

一般来说,用计算机解决一个具体问题时,大致需要如下几步:

  • 首先,要从具体问题抽象出适当的数学模型;
  • 然后,设计一个解此数学模型的算法;
  • 然后,再编写程序;
  • 最后,进行测试、调整直至最终解决此问题。

其中寻找数学模型的实质就是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学语言加以描述。面对一些简单的场景也许只需要一个数学方程就能解决,但是面对一些复杂的场景,如需要统计图书馆书目信息、借还信息等这些非数值计算问题的数学模型,就不再是一个简单的数学方程了,而是像表、树和图之类的数据结构。

因此,简单来说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(这称之为数据),并且这些数据之间有着某种关系(这种关系就是结构)。

2、常见的数据结构

  • 字符串
  • 数组
  • 线性表
  • 队列

3、逻辑结构分类

  • 集合结构:一堆数据中唯一的关系就是同属某一个集合;
  • 线性结构:结构中的数据元素之间存在一个接着一个的关系;
  • 树形结构:结构中的数据元素之间存在一个对多个的关系;
  • 图形结构(或网状结构):结构中的数据元素存在多个对多个的关系;

逻辑结构图形表示,如下:

4、存储结构(物理结构)

数据在计算机中的表示(或称映像)称为物理结构,又称为存储结构。在计算机中表示数据的最小单位是一个二进制位,叫做(bit)。在计算机中,我们可以用一个由若干位组合起来形成一个位串来表示一个数据元素(如用32位即4个字节表示一个整数元素,8位即1个字节表示一个字符)。

数据元素之间的关系在计算机中有两种不同的表示方式:顺序映像非顺序映像,并由此得出两种不同的存储结构:顺序存储结构非顺序存储结构。顺序存储是在连续存储空间内,元素之间借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系(如图4-1,一个整型数组的两个元素11和12在内存中的位置是连续的,0010存储的是11,0014存储的是12)。而非顺序存储是借助指向元素地址的指针来表示元素之间的关系(如图4-2,一个链表里的两个元素a以及元素b,在1110存储的是元素a,a后面存储的是指向下一个元素b的地址的指针)。

总结

数据结构是我们研究问题的基础数据模型,既包含了问题对象的结构也包含了问题对象之间的关系。清楚的知道我们常用的数据结构,能为我们日后思考以及解决程序问题打下坚实的理论基础。

本文为原创内容,供学习参考以及总结归纳使用,若文章中有引用到涉及版权相关的图片,请告知!

勘误,请留言!

转载于:https://juejin.im/post/5bf2cd6ce51d4576bc435d16

你可能感兴趣的文章
快捷键
查看>>
OOP
查看>>
Alpha 冲刺 (5/10)
查看>>
python app progs
查看>>
openstack provider self-service network subnet 创建
查看>>
JEE_SSH2整合
查看>>
linux强制用户下线命令
查看>>
Maven插件和细节
查看>>
云计算学习笔记---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战...
查看>>
10 表连接优化
查看>>
使用electron将应用程序加入到系统托盘
查看>>
对顶堆学习笔记
查看>>
iOS开发中的http浅析
查看>>
LINUX网络相关命令(转)
查看>>
关于WIN7输入法的小问题
查看>>
MSAA, UIA brief explanation
查看>>
asp.net DataGrid GridView 表格之取消设计最初显示的绑定列
查看>>
Apache为mysql以及自己的项目设置虚拟路径
查看>>
ios合并静态库
查看>>
untiy 插件工具: 游戏中 策划数据Excel 导出到项目中
查看>>