数据结构python版设顺序表l有10个整数、设计一个算法_数据结构与算法分析设计习题.pdf...

1.1 简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性

结构、非线性结构。

◆ 数据:指能够被计算机识别、存储和加工处理的信息载体。

◆ 数据元素:就是数据的基本单位,在某些情况下,数据 匾渤莆  亍⒔岬恪⒍サ恪⒓

锹肌J 菰 赜惺笨梢杂扇舾?font

color="#0000FF">数据项组成。

◆ 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。

◆ 数据结构:指的是数据之间的相互关系,即数据的组织形式。一般包括三个方面的内容:

数据的逻辑结构、存储结构和数据的运算。

◆ 逻辑结构:指各数据元素之间的逻辑关系。

◆ 存储结构:就是数据的逻辑结构用计算机语言的实现。

◆ 线性结构:数据逻辑结构中的一类,它的特征是若结构为非空集,则该结构有且只有一

个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线

性表就是一个典型的线性结构。

◆ 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前

趋和直接后继。

1.2 试举一个数据结构的例子、叙述其逻辑结构、存储结构、运算三个方面的内容。

例如有一张学生成绩表,记录了一个班的学生各门课的成绩。按学生的姓名为一行记成的

表。这个表就是一个数据结构。每个记录(有姓名,学号,成绩等字段)就是一个结点,对

于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),

其他的结点则各有一个也只有一个直接前趋和直接后继(它的前面和后面均有且只有一个记

录)。这几个关系就确定了这个表的逻辑结构。

那么我们怎样把这个表中的数据存储到计算机里呢? 用高级语言如何表示各结点之间的关

系呢?

是用一片连续的内存单元来存放这些记录(如用数组表示)还是随机存放各结点数据再用指

针进行链接呢?

这就是存储结构的问题,我们都是从高级语言的层次来讨论这个问题的。(所以各位赶快学

C 语言吧)。

最后,我们有了这个表(数据结构),肯定要用它,那么就是要对这张表中的记录进行查

询,修改,删除等操作,对这个表可以进行哪些操作以及如何实现这些操作就是数据的运

算问题了。

1.3 常用的存储表示方法有哪几种?

常用的存储表示方法有四种:

◆ 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的

逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。

◆ 链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是

由附加的指针字段表示的。由此得到的存储表示称为链式存储结构。

◆ 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

◆ 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

1.4 设三个函数 f,g,h 分别为 f(n)=100n^3+n^2+1000 , g(n)=25n^3+5000n^2 ,

h(n)=n^1.5+5000nlgn 请判断下列关系是否成立:

(1) f(n)=O(g(n))

(2) g(n)=O(f(n))

(3) h(n)=O(n^1.5)

(4) h(n)=O(nlgn)

◆ (1)成立。

◇ 这里我们复习一下渐近时间复杂度的表示法 T(n)=O(f(n)),这里的"O"是数学符号,它

的严格定义是"若 T(n)和 f(n)是定义在正整数集合上的两个函数,则T(n)=O(f(n))表示存

在正的常数 C 和n0 ,使得当 n≥n0时都满足 0≤T(n)≤C·f(n)。"用容易理解的话说就是

这两个函数当整型自变量 n 趋向于无穷大时,两者的比值是一个不等于 0 的常数。这么一

来,就好计算了吧。第(1)题中两个函数的最高次项都是 n^3,因此当 n→∞时,两个函数的

比值是一个常数,所以这个关系式是成立的。

◆ (2)成立。

◆ (3)成立。

◆ (4)不成立。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值