数据结构与算法(第一章 数据结构的基本概念 )

本文介绍了数据结构的基本概念,包括数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、数据类型和抽象数据类型。逻辑结构分为集合、线性、树形和图形结构,存储结构包含顺序和链式结构。数据类型定义了一组值的集合及其相关操作。抽象数据类型关注数据模型和操作,独立于实现。总结了数据结构的定义及其不同分类。

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

说起数据结构与算法,他们之间的关系是怎么样的呢?某位dalao曾经这样说过:

The relationship between the data structures and algorithms likemartial arts moves and skills, only moves without skills, dealing with thelittle scene is no problem, but really to the scenes of gang fights will onlybeaten; so, only to learn the skills to better clear the loading force!

说人话就是:数据结构与算法之间的关系就像武功招式和内功一样,只会招式而不会内功,应付小场面是没有问题的,但是真的到了大场面的群殴就只有挨打的份了;所以,只有学好了内功才能更好的潇洒装逼!(好吧这是我自己百度翻译来的_(:з)∠)_)

 

噗,让我们回归正题哈_(:з)∠)_

 

数据结构的基本概念

1.1.什么是数据?

         数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。

 

1.2.什么是数据元素?

       数据元素是组成数据的,有有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。

 

1.3.什么是数据项?

       一个数据元素是由若干个数据项组成的。


1.4.什么是数据对象?

       数据对象是指性质相同的元素的集合,是数据的子集。


1.6.什么是数据结构?

       数据之间相互存在的一种或者多种特定关系的元素是集合就是数据结构。

 

1.7.什么是逻辑结构?

       数据对象中数据元素之间的相互关系就是逻辑结构,逻辑结构基本分为以下四种。

①集合结构:数据元素之间除了同属一个集合之外,别无其他关系。

(这些图之间是没有关系的,但他们都属于“表情包”这个集合)


 

②线性结构:线性结构是n数据元素的有序(次序)集合。

(聪明的人一眼就看出下图是一种有序的排列所组成的有序集合。

 


③树形结构:数据元素之间存在着一对多的树形关系的数据结构

(树形结构是一类重要的非线性数据结构。正经脸.jpg

 


④图形结构:数据元素间的关系是任意的。

(其他数据结构【如树、线性表等】都有明确的条件限制,而图形结构中任意两个数据元素间均可相关联。图形结构可以说是最难的一种逻辑结构了_(:з)∠_



 

1.8.什么是存储结构?

         存储结构又叫物理结构,数据的存储结构是指数据的逻辑结构在计算机中的表示。存储结构又分为顺序存储结构和链式存储结构。

①顺序存储结构:逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。

(其实就是一组数据按照顺序进行存储,且存储地址相连续存储方式就叫顺序存储结构

顺序存储结构的优点在于可以随机存取表中元素,而缺点则是插入和删除操作需要移动元素。

 


 

②链式存储结构:是把数据元素放在任意的存储单元中,这组存储单元可以是连续的也可以是不连续的。

 

 

1.9.什么是数据类型?

         是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

         Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byteshortintlongfloatdouble。数值类型又可以分为整数类型byteshortintlong和浮点数类型floatdouble(此段转载至http://blog.youkuaiyun.com/u014266877/article/details/54374867 )

 

1.10.什么是抽象数据类型

      抽象数据类型(abstract data type, 简称ADT)由一种数据模型和在该数据模型上的一组操作组成。

    抽象数据类型包括定义和实现两个方面,其中定义是独立于实现的。抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算机内部的实现无关,即无论它的内部结构如何变化,只要它的逻辑特性不变,都不会影响到它的使用。其内部的变化(抽象数据类型实现的变化)只是可能会对外部在使用它解决问题时的效率上产生影响,因此我们的一个重要任务就是如何简单、高效地实现抽象数据类型。很明显,对于不同的运算组,为使组中所有运算的效率都尽可能地高,其相应的数据模型具体表示的选择将是不同的。在这个意义下,数据模型的具体表示又依赖于数据模型上定义的那些运算。特别是,当不同运算的效率互相制约时,还必须事先将所有的运算的相应使用频度排序,让所选择的数据模型的具体表示优先保证使用频度较高的运算有较高的效率。

(转载于https://www.cnblogs.com/dylanrun/p/6688197.html)

                                                 总结

    数据,数据对象,数据元素,数据项之间的关系如下图。_(:з))_

 

 

    由这些理念给出了数据结构的定义:数据结构就是相互之间存在一种或多种特定关系的数据元素的集合。同样是结构,从不同的角度去讨论,就会有不同的分类,如下图。

            

 

    而抽象数据类型以及它的描述办法,通过接下的学习,就会慢慢明了的(来日方长~)。


    (完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值