其他分享
首页 > 其他分享> > 课后习题1-数据结构

课后习题1-数据结构

作者:互联网

1.概念:

数据:Data,是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素:Data Element,是数据的基本单位,在计算机中常作为一个整体进行考虑和处理,用于完整的描述一个对象。
数据项:Data Item,是组成数据元素的、有独立含义的、不可分割的最小单位。
数据对象:Data Object,是性质相同的数据元素的集合,是数据的一个子集。
数据结构:Data Structure,是相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构:从具体问题抽象出来的数学模型。
存储结构:数据对象在计算机中的存储表示。
抽象数据类型:Abstract Data Type,ADT,是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。是建立在逻辑结构上的一些抽象运算。

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

例如有一张学生基本信息表,包括学生的学号、姓名、性别、专业、学院等信息。每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继。
学生记录之间的这种关系就确定了学生表的逻辑结构,即线性结构。 这些学生记录在计算机中的存储表示就是存储结构。如果用连续的存储单元(如用数组表示)来存放这些记录,则称为顺序存储结构;如果存储单元不连续,而是随机存放各个记录,然后用指针进行链接,则称为链式存储结构。 即相同的逻辑结构,可以对应不同的存储结构。

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

集合结构: 数据元素之间除了“属于同一集合”的关系外,别无其他关系。
线性结构: 数据元素之间存在一对一的关系。
树结构: 数据元素之间存在一对多的关系。
图结构或网状结构: 数据元素之间存在多对多的关系。
在这里插入图片描述

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

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

5选择题

(1) 在数据结构中, 从逻辑上可以把数据结构分成(C )。
A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构
C. 线性结构和非线性结构 D. 内部结构和外部结构
在这里插入图片描述
(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的(C )。
A. 存储结构 B. 存储实现
C. 逻辑结构 D. 运算实现

存储及运算都需考虑数据元素本身的形式、内容等。而逻辑结构中关心元素之间的逻辑关系,与数据元素本身无关。

(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性, 这意味着( B)。
A. 数据具有同一特点
B. 不仅数据元素所包含的数据项的个数要相同, 而且对应数据项的类型要一致
C. 每个数据元素都一样
D. 数据元素所包含的数据项的个数要相等
(4)以下说法正确的是( D)。
A. 数据元素是数据的最小单位
B. 数据项是数据的基本单位
C. 数据结构是带有结构的各数据项的集合
D. 一些表面上很不相同的数据可以有相同的逻辑结构

数据元素是数据的基本单位
数据项是数据的最小单位
数据结构是带有结构的各数据元素的集合

(5)算法的时间复杂度取决于(D )。
A. 问题的规模 B. 待处理数据的初态
C. 计算机的配置 D. A和B

算法的时间复杂度取决于:待处理数据的状态、问题的规模

(6)以下数据结构中,(A)是非线性数据结构。
A. 树 B.字符串
C. 队列 D. 栈

6.试分析下面各程序段的时间复杂度

1)
x=90; y=100;
while(y>0)
if(x>100)
{x=x-10;y–;}
else x++;
答案:O(1), 程序的执行次数为常数阶
2)
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a [i] [j]=0;
答案:O(mn),语句a[i][j]=0;的执行次数为mn
3)
s=0;
for i=0; i<n; i++)
for(j=0; j<n; j++)
s+=B[i][j];
sum=s;
答案:O(n2),语句s+=B[i][j];的执行次数为n2
4)
i=1;
while(i<=n)
i=i3;
答案:O(log3 n),语句i=i
3;的执行次数为 log3 n。
5)
x=0;
for(i=1; i<n; i++)
for (j=1; j<=n-i; j++)
x++;
答案:O(n^2);语句x++;的执行次数为n-1+n-2+……+1= n(n-1)/2
6)
x=n; //n>1
y=0;
while (x>=(y+1) * (y+1))
y++;
答案:O(log2 n);语句y++;的执行次数为 log2 n

标签:数据项,存储,元素,课后,习题,数据结构,数据,结构
来源: https://blog.csdn.net/weixin_44645825/article/details/120991026