“数据结构” 和 “数据类型” 两个概念的本质是什么,两者的区别与联系是什么?它们是从属关系吗?

数据结构是数据的一种表现形式,我们把一个具体的人当做一个数据,这人都是由一个头两条腿组成。这头跟腿可以看成是具体的这个人的组成的数据项,他们的关系是头是在上面的腿是在下面的,所以具体的某个人这个数据的表现形式是头在上面两条腿在下面。而每个人都有这样的表现形式也就是都有这样的相同的数据结构,我们把每个具体的人归为同一类,把它叫做人类这种数据类型。这数据类型也可以看成是数据的一个属性,每个数据都有这样的一个属性。int a[3],int b[4]这a和b的数据类型的属性是相同的吗?他们的表现形式(数据结构)是一样的吗??我的回答是都不一样,a跟b一个是由3个int组成,一个是由4个int组成。如果拿人来做比较,其它所有的构成都一样,但一个是1颗脑袋,一个是2颗脑袋,那这两个我们会把它当成是相同的数据结构吗?数据结构都不同,那它们自然是不属于同一个数据类型了。在我看来数组类型,结构体类型是一个很大的概念,就像基本类型一样,我们可以说int是属于基本类型的,char也是属于基本类型的。但int跟char这两个不是属于同一个类型的。而int [3]这是属于数组类型,int [4]也是属于数组类型,但它们不是属于同一个数据类型。这有点像我们定义的类,我们用类声明的对象都是属于类类型,但类类型这个大的类型底下又分了无穷个自定义的类型。。。我的理解是这样的,我想问问大神们我的这样的理解有没有问题??

数据结构与数据类型不是孤立的,首先你要知道他们都是为编程、为算法服务的,其次值,数据类型,数据结构相互是有关联的。
那么什么是算法?算法就是解决问题的步骤,即使是烹饪,也是算法,因为它需要一定的变量输入(各种原料配料),通过一定的解决问题的步骤(烹饪),然后得出结果,烹饪过程就是其中的算法。
这些输入的变量(比如盐、糖、油、调味料、肉块),就是数据(或者说是值),这些数据有自己的特点,油用ml衡量,糖盐用汤匙衡量,肉块用g衡量。这些衡量的方法就是数据类型。
在算法中,所有的数据都有类型,整数型、浮点型、字符型、字符串型、布尔型。。。
那么什么是数据结构?算法中要输入大量数据并对这些数据进行处理,最终得到输出结果。而在这些数据的输入输出、调用和处理过程中,我们要保存各种各样的数据并有效的管理数据。大量数据的有效管理机制就叫做数据结构。像上面烹饪的例子中,你如何安放这些糖盐肉,以便你在处理烹饪的时候可以更快捷不会手忙脚乱,这个安放的方法,就叫数据结构。
有代表性的数据结构:  
数组:连续无间隙排列的数据结构叫做数组。线性排列的是一维数组,像长方形一样横竖排列的是二维数组,像立方体一样排列的是三维数组。  
链表:数据按照顺序排列的数据结构叫做链表。链表中的数据可以远距离存放,数据是在链表的箭头连接的结点中顺序管理的。  
栈:类似于在桌上堆书一样来管理数据的数据结构叫做栈。栈是一种与数据输入顺序相反逆序输出的数据管理方式。  
队列:如同超市收银队列一样的数据结构叫做队列。队列是数据输出顺序与数据输入顺序一致的数据管理方式。  
树:像倒置的树枝一样的分叉的数据结构。
全手打,我想应该说的够清楚了,希望楼主不要纠结课本上那些字面的意思,展开联想,全局把握。最后最重要的,请采纳,谢谢。追问

你好,你这里举的例子比如说数组,链表,栈 这栈是一种数据结构,但这样的一种数据结构我们要想一个办法在计算机中怎么表示,按经验我们可以用链表的方式来存栈这种数据结构。这栈,队列,树什么的应该是逻辑上的描述,这链表应该是计算机用的一种存放的方式。看你好象把它们是当成一回事了啊。还有线性表与单链表这是包含关系吗?还是这两个是完全不同的概念希望大神帮助回答一下啊呵呵

追答

单链表是线性表的一个存储方式。线性表只是一个概念,它可以用链表来存储,也可以用数组来存储实现。

追问

我看很多资料都说线性表包含单链表,照你看来它们应该不是包含关系吧??

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-01
严蔚敏编著的《数据结构》教材对数据结构的定义:

相互之间存在一种或多种特定关系的数据元素的集合。
有人说,数据结构就是用来存放有特定关系的数据的容器。

数据类型是数据的一种分类,是按照数据结构来分类的。数据类型的出现是为了把数据分成所需内存大小不同的数据。

还是不太明白,貌似数据结构中包含了数据类型,而数据类型又建立在数据结构之上?
那么数组到底是一种数据结构还是一种数据类型呢?是不是除了线性表、队列、堆栈、树......这些,int char double 也可以看成一种简单的只有一个数据元素的数据结构呢?本回答被提问者采纳
相似回答