数据类型&&数据结构

最近总是被这两个概念混淆,抽出时间捋了捋他们的概念、关系。希望对大家有用。

为什么要引入数据结构和数据类型的概念?

计算机只识别0和1。现在人给计算机发送图片,语音,视频,二级制文件。该怎么办呢?其实简单一点的就是图片(0101010101)、语音(01010101010101010101010),视频(010101010101010110101001…)二级制文件(010101010101…)。取中间值假设定义一种简单的数据(初始大小100000k),那发送1k的图片需要初始化100000k,是不太浪费内存空间了。所以需要定义不同的数据,也就是不同的数据类型。

现在需要统计班级的成绩,比如小红-第一名,小明-第二名,小周-第三名…大家一下子想到了使用key-value这样的集合去存储这样的数据。怎么保证小红,就能拿到第一名呢?怎么保证数据过多,快速查找数据呢?删除、增加数据,集合怎么变动呢?这就需要数据结构去解决这些问题了。

一、概念

数据结构:计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

数据类型:在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。

二、分类

数据结构:数组、栈、队列、链表、树、图、堆、散列表等。

数据类型:基本数据类型(byte、short、int、long、double、float、boolean、char),引用数据类型,(以JAVA举例)

三、浅谈不同

(1)数据类型定义了数据在计算机存储的大小及数据的操作。比如int类型的数据,在计算机存储是两个字节的长度。

int类型有一些加、减、乘、除的操作。

数据结构定义了数据存储及组织数据的方式。比如mysql数据库索引,使用的是B+树结构,提高了数据的检索效率,减少了io的操作。

(2)数据类型是一类事物的集合,数据结构是一种解决问题的思想。

(3)数据类型中也会用到数据结构,如HashMap的低层结构是数组+链表+红黑树

猜你喜欢

转载自blog.csdn.net/qq_41074989/article/details/88671555