zoukankan      html  css  js  c++  java
  • 数据结构问答题

    2. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?

    四种表示方法 (1)顺序存储方式。数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。 (2)链式存储方式。每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。指针反映数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。 (3)索引存储方式。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。 (4)散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。

    3. 数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽 象数据类型的主要特点是什么?使用抽象数据类型的主要好处是什么? 【北京邮电大学 1994 一(8 分)】

    数据类型是程序设计语言中的一个概念,它是一个值的集合和操作的 集合。如 C 语言中的整型、实型、字符型等。整型值的范围(对具体机器 都应有整数范围),其操作有加、减、乘、除、求余等。实际上数据类型是 厂家提供给用户的已实现了的数据结构。“抽象数据类型(ADT)”指一个 数学模型及定义在该模型上的一组操作。“抽象”的意义在于数据类型的数 学抽象特性。抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算 机内部如何表示和实现无关。无论其内部结构如何变化,只要它的数学特 性不变就不影响它的外部使用。抽象数据类型和数据类型实质上是一个概 念。此外,抽象数据类型的范围更广,它已不再局限于机器已定义和实现 的数据类型,还包括用户在设计软件系统时自行定义的数据类型。使用抽 象数据类型定义的软件模块含定义、表示和实现三部分,封装在一起,对 用户透明(提供接口),而不必了解实现细节。抽象数据类型的出现使程序 设计不再是“艺术”,而是向“科学”迈进了一步。

    4. 回答问题(每题 2 分)

    (1)在数据结构课程中,数据的逻辑结构,数据的存储结构及数据的 运算之间存在着怎样的关系?

    数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关 联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示, 包括数据元素的表示及其关系的表示。数据的运算是对数据定义的一组操 作,运算是定义在逻辑结构上的,和存储结构无关,而运算的实现则是依 赖于存储结构。

    (2)若逻辑结构相同但存储结构不同,则为不同的数据结构。这样的 说法对吗?举例说明之。

    逻辑结构相同但存储不同,可以是不同的数据结构。例如,线性表的 逻辑结构属于线性结构,采用顺序存储结构为顺序表,而采用链式存储结 构称为线性链表。

    (3)在给定的逻辑结构及其存储表示上可以定义不同的运算集合,从 而得到不同的数据结构。这样说法对吗?举例说明之。

    栈和队列的逻辑结构相同,其存储表示也可相同(顺序存储和链式存 储),但由于其运算集合不同而成为不同的数据结构。

    (4)评价各种不同数据结构的标准是什么?

    数据结构的评价非常复杂,可以考虑两个方面,一是所选数据结构是否准 确、完整的刻划了问题的基本特征;二是是否容易实现(如对数据分解是 否恰当;逻辑结构的选择是否适合于运算的功能,是否有利于运算的实现; 基本运算的选择是否恰当。)

    5.评价一个好的算法,您是从哪几方面来考虑的?

    评价好的算法有四个方面。一是算法的正确性;二是算法的易读性;三是 算法的健壮性;四是算法的时空效率(运行)。 【大连海事大学 1996 二、3 (2 分)】【中山大学 1998 三、1 (5 分)】

    6.解释和比较以下各组概念【华南师范大学 2000 一(10 分)】

    (1)抽象数据类型及数据类型

    (2)数据结构、逻辑结构、存储结构

    (3)抽象数据类型【哈尔滨工业大学 2000 一、1(3 分)】

    (4)算法的时间复杂性 【河海大学 1998 一、2(3 分)】

    (5)算法【吉林工业大学 1999 一、1(2 分)】

    (6)频度【吉林工业大学 1999 一、2(2 分)】

    (1)见上面题 3 (2)见上面题 4 (3)见上面题 3

    (4)算法的时间复杂性是算法输入规模的函数。算法的输入规模或问题 的规模是作为该算法输入的数据所含数据元素的数目,或与此数目有关的 其它参数。有时考虑算法在最坏情况下的时间复杂度或平均时间复杂度。

    (5)算法是对特定问题求解步骤的描述,是指令的有限序列,其中每一 . 精品文档 条指令表示一个或多个操作。算法具有五个重要特性:有穷性、确定性、 可行性、输入和输出。

    (6)频度。在分析算法时间复杂度时,有时需要估算基本操作的原操作, 它是执行次数最多的一个操作,该操作重复执行的次数称为频度。

    7. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构?

    集合、线性结构、树形结构、图形或网状结构。 【北京科技大学 1998 一、1】【同济大学 1998】

    8.对于一个数据结构,一般包括哪三个方面的讨论?【北京科技大学 1999 一、1(2 分)】

    逻辑结构、存储结构、操作(运算)。

    9. 当你为解决某一问题而选择数据结构时,应从哪些方面考虑?【西安电 子北京科技大学 2000】

    通常考虑算法所需要的存储空间量和算法所需要的时间量。后者又涉及 到四方面:程序运行时所需输入的数据总量,对源程序进行编译所需时间, 计算机执行每条指令所需时间和程序中指令重复执行的次数。

    10. 若将数据结构定义为一个二元组(D,R),说明符号 D,R 应分别表示 什么? 【北京科技大学 2001 一、1(2 分)】

    D 是数据元素的有限集合,S 是 D 上数据元素之间关系的有限集合。

    11.数据结构与数据类型有什么区别?【哈尔滨工业大学 2001 三、1(3 分)】

    “数据结构”这一术语有两种含义,一是作为一门课程的名称;二是作为 一个科学的概念。作为科学概念,目前尚无公认定义,一般认为,讨论数 据结构要包括三个方面,一是数据的逻辑结构,二是数据的存储结构,三 是对数据进行的操作(运算)。而数据类型是值的集合和操作的集合,可以 看作是已实现了的数据结构,后者是前者的一种简化情况。

  • 相关阅读:
    如何查看linux端口被哪个进程占用
    Beego 结合 GORM 操作 Mysql 数据库
    Linux Go proxy 设置
    working directory is not part of a module
    依赖注入 gin项目的目录结构说明
    详解django中使用定时任务的方法
    input 原声上传文件 file转化为binary对象发送给后台
    vue篇之事件总线(EventBus)
    小程序路由遇到的问题(eventChannel.emit is not a function报错)
    小程序组件(弹窗组件以及插槽使用)
  • 原文地址:https://www.cnblogs.com/hongdoudou/p/12934935.html
Copyright © 2011-2022 走看看