随笔 - 39,  文章 - 0,  评论 - 0,  阅读 - 17840

1、简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

解答:

     数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数字计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。

     数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、结点、记录等。数据元素用于完整地描述一个对象,如一个学生记录、树中棋盘的一个格局(状态)、图中的一个顶点等。

     数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生基本信息表中的学号、姓名、性别等都是数据项。

     数据对象:是性质相同的数据元素的集合,是数据的一个子集。例如,整数数据对象是集合N ={0,±1,±2,...},字母字符数据对象是集合C = {‘A’,‘B’,...,‘Z’,‘a’,‘b’,...,‘z’},学生信息表也可是一个数据对象。

     数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。

    逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作从具体问题抽象出来的数学模型。

    存储结构:是数据对象在计算机中的存储表示,也称为物理结构。

    抽象数据类型:是由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。

2、试举一个数据结构的例子,叙述其逻辑结构和存储结构两个层次的含义及相互关系。

解答:

      例如,有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。每个学生的基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前驱和直接后继。学生记录之间的这种关系就确定了学生表的逻辑结构,即线性结构。

      这些学生记录在计算机中的存储表示就是存储结构。如果用连续的存储单元(如用数组表示)来存放这些记录,则称为顺序存储结构;如果存储单元不连续,而是随机存放各个记录,然后用指针进行链接,则称为链式存储结构。

      即相同的逻辑结构,可以对应不同的存储结构。

3、简述逻辑结构的四种基本关系并画出它们的关系图。

解答:

4、存储结构由哪两种基本的存储方法实现?

解答:

(1)顺序存储结构

   顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。

(2)链式存储结构

  顺序存储结构要求所有的元素依次存放在一段连续的存储空间中,而链式存储结构无需占用一整块存储空间,但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。所以链式存储结构通常借助程序设计语言的指针类型来描述。

5、选择题

(1)在数据结构中,从逻辑上可以把数据结构分成(  )

          A.  动态结构和静态结构          B.  紧凑结构和非紧凑结构

          C.  线性结构和非线性结构      D.  内部结构和外部结构

解答:C

(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的(  )

          A.  存储结构                 B.  存储实现

          C.  逻辑结构                 D.  运算实现

解答:C

(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着(  )

         A.  数据具有同一特点 

         B.  不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致

         C.  每个数据元素都一样

         D.  数据元素所包含的数据项的个数要相等

解答:B

(4)以下说法正确的是(  )

         A.  数据元素是数据的最小单位

         B.  数据项是数据的基本单位

         C.  数据结构是带有结构的各数据项的集合

         D. 一些表面上很不相同的数据可以有相同的逻辑结构

解答:D

(5)算法的时间复杂度取决于(  )

         A.  问题的规模                B.  待处理数据的初态

         C.  计算机的配置            D.  A和B

解答:D

(6)以下数据结构中,(  )是非线性数据结构

         A.  树       B.  字符串     C.  队列      D.  栈

解答:A

6、试分析下列各算法的时间复杂度

解答:O(1)   程序中基本语句“y--;”或“x++;”执行的次数是由x和y决定的,而x和y都是一个常数。所以,T(n) = O(1)。

解答:O(n*m)   由于程序为嵌套循环,外层循环的执行次数为n,内层循环的执行次数为m。所以,T(n) = O(n*m)。

解答:O(n2)   由于程序为嵌套循环,外层循环的执行次数为n,内层循环的执行次数为n。所以,T(n) = O(n2)。

解答:O(log3n)  设基本语句“i = i*3;”的执行次数为f(n),则有:3f(n) ≤ n。因此,T(n) = O(log3n)。

 

解答:O(n2)   基本语句“x++;”的执行次数为:n - 1 + n - 2 + ... + 1 = n(n-1)/2。因此,T(n) = O(n2)

解答:O(√n)   设基本语句"y++;"的执行次数为f(n),则x ≥ (f(n) + 1)2,又由于x = n,所以f(n) ≤ √n -1,即T(n) =O(√n)

posted on   Santariki  阅读(521)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示