当前位置:文档之家› 数据结构及应用算法教程习题--第一章

数据结构及应用算法教程习题--第一章

数据结构及应用算法教程习题--第一章
数据结构及应用算法教程习题--第一章

第一章绪论

一、选择题

1. 算法的计算量的大小称为计算的( B )。

A.效率 B. 复杂性 C. 现实性 D. 难度

2. 算法的时间复杂度取决于( C )

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

3.计算机算法指的是( C )它必须具备( B )这三个特性。

(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法

(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性

C. 确定性、有穷性、稳定性

D. 易读性、稳定性、安全性4.一个算法应该是()。

A.程序 B.问题求解步骤的描述 C.要满足五个基本特性

D.A和C.

5. 下面关于算法说法错误的是()

A.算法最终必须由计算机程序实现

B.为解决某问题的算法同为该问题编写的程序含义是相同的

C. 算法的可行性是指指令不能有二义性

D. 以上几个都是错误的

6. 下面说法错误的是()

(1)算法原地工作的含义是指不需要任何额外的辅助空间

(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法

(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

(4)同一个算法,实现语言的级别越高,执行效率就越低

A.(1) B.(1),(2) C.(1),(4) D.(3)

7.从逻辑上可以把数据结构分为( C )两大类。

A.动态结构、静态结构 B.顺序结构、链式结构

C.线性结构、非线性结构 D.初等结构、构造型结构

8.以下与数据的存储结构无关的术语是( D )。

A.循环队列 B. 链表 D. 栈

9.以下数据结构中,( D )是线性结构

A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串

10.以下数据结构中,( A )是非线性数据结构

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

11.连续存储设计时,存储单元的地址( A )。

A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续12.以下属于逻辑结构的是( C )。

A.顺序表 C.有序表 D. 单链表

二、填空

1.数据的物理结构包括的表示和的表示。

2. 对于给定的n个元素,可以构造出的逻辑结构有(1),(2),(3),__(4)_四种。

3.数据的逻辑结构是指。

4.一个数据结构在计算机中称为存储结构。

5.抽象数据类型的定义仅取决于它的一组__(1)_,而与_(2)_无关,即不论其内部结构如何变化,只要它的_(3)_不变,都不影响其外部使用。

6.数据结构中评价算法的两个重要指标是

7. 数据结构是研讨数据的_(1)_和_(2)_,以及它们之间的相互关系,并对与这种结构定义相应的_(3)_,设计出相应的(4)_。

8.一个算法具有5个特性: (1)、(2)、(3),有零个或多个输入、有一个或多个输出。

9. 下面程序段的时间复杂度为__O(n)______。(n>1)

sum=1;

for (i=0;sum

三、应用题

1. 数据结构是一门研究什么内容的学科?

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

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

6.解释和比较以下各组概念

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

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

(3)抽象数据类型

(4)算法的时间复杂性

(5)算法

(6)频度

8.对于一个数据结构,一般包括哪三个方面的讨论?

10. 若将数据结构定义为一个二元组(D,R),说明符号D,R 应分别表示什么?11.数据结构与数据类型有什么区别?

17. 有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为Tl=O(2n),A2的时间复杂度为T2=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。

18.设计一数据结构,用来表示某一银行储户的基本信息:账号、姓名、开户年月日、储蓄类型、存入累加数、利息、帐面总数。

23. 调用下列C函数f(n), 回答下列问题 :

(1)试指出f(n)值的大小,并写出f(n) 值的推导过程;

(2)假定n= 5,试指出f(5)值的大小和执行f(5)时的输出结果。

C函数: int f(int n)

{ int i,j,k,sum= 0;

for(i=l; i

{for(j=n;j>i-1; j--)

for(k=1;k

sum++;

printf("sum=%d\n",sum);

}

return (sum);

}

参考答案

一、选择题

1.B 2.C 3.C B 4.B 5.D 6.C 7.C 8.D 9.D 10.A 11.A 12.C

二、填空题

1.数据元素数据元素间关系 2.集合线性结构树形结构图状结构或网状结构。3.数据的组织形式,即数据元素之间逻辑关系的总体。而逻辑关系是指数据元素之间的关联方式或称“邻接关系”。4.表示(又称映像)。5.(1)逻辑特性(2)在计算机内部如何表示和实现(3)数学特性。 6.算法的时间复杂度和空间复杂度。7.(1)逻辑结构(2)物理结构(3)操作(运算)(4)算法。 8.(1)有穷性(2)确定性(3)可行性。 9. O(n) 10. n(n-1)/2

三、应用题

1.数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。

2.四种表示方法

(1)顺序存储方式。数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。

(2)链式存储方式。每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。指针反映数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。

(3)索引存储方式。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。

(4)散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。

4.(1)数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。数据的运算是对数据定义的一组操作,运算是定义在逻辑结构上的,和存储结构无关,而运算的实现则是依赖于存储结构。(2)逻辑结构相同但存储不同,可以是不同的数据结构。例如,线性表的逻辑结构属于线性结构,采用顺序存储结构为顺序表,而采用链式存储结构称为线性链表。

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

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

5.评价好的算法有四个方面。一是算法的正确性;二是算法的易读性;三是算法的健壮性;四是算法的时空效率(运行)。

6.(1)数据类型是程序设计语言中的一个概念,它是一个值的集合和操作的集合。实

际上数据类型是厂家提供给用户的已实现了的数据结构。“抽象数据类型(ADT)”指一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算机内部如何表示和实现无关。无论其内部结构如何变化,只要它的数学特性不变就不影响它的外部使用。抽象数据类型和数据类型实质上是一个概念。抽象数据类型的范围更广,它已不再局限于机器已定义和实现的数据类型,还包括用户在设计软件系统时自行定义的数据类型。

(2)数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或

“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。

(3)抽象数据类型(ADT)”指一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算机内部如何表示和实现无关。无论其内部结构如何变化,只要它的数学特性不变就不影响它的外部使用。

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

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

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

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

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

12.见上面题2。

17.对算法A1和A2的时间复杂度T1和T2取对数,得nlog2和2log n。显然,算法A2好于A1。

18. struct node

{int year,month,day; };

typedef struct

{int num;//帐号

char name[8];//姓名

struct node date;//开户年月日

int tag;//储蓄类型,如:0- 零存,1- 一年定期……

float put;//存入累加数;

float interest;//利息

float total;//帐面总数

23.第一层FOR循环判断n+1次,往下执行n次,第二层FOR执行次数为(n+(n-1)+(n-2)+…+1),第三层循环体受第一层循环和第二层循环的控制,其执行次数如下表:

i= 1 2 3 … n

j=n n n n … n

j=n-1 n-1 n-1 n-1 …

…………

j=3 3 3

j=2 2 2

j=1 1

执行次数为(1+2+…+n)+(2+3+…+n)+…+n=n*n(n+1)/2-n(n2-1)/6。在n=5时,f(5)=55,执行过程中,输出结果为:sum=15,sum=29,sum=41,sum=50,sum=55(每个sum= 占一行,为节省篇幅,这里省去换行)。

《数据结构》教学纲要(doc 9页)

《数据结构》教学纲要(doc 9页)

《数据结构》教学大纲 2001年9月 一、开课系(部):经济信息管理系 二、教学对象:信息管理与信息系统专业本科 三、教学目的: 数据结构是高等教育计算机信息管理专业中的一门专业基础课,在计算机软件的各个领域中均会使用到数据结构的有关知识。本课程的目的和任务是使学生较全面地掌握各种常用的数据结构,为学习后续软件课程提供必要的基础,提高运用数据结构解决实际问题的能力。 四、教学要求: 1. 从数据结构的逻辑结构、存储结构和数据的运算三个方面去掌握线性表、栈、队列、串、数组、广义表、树、图和文件等常用的数据结构。 2. 掌握在各种常用的数据结构上实现的排序和查找运算。 3. 对算法的时间和空间复杂性有一定的分析能力。 4. 针对简单的应用问题.应能选择合适的数据结构及设计有效的算法解决之。 五、教学课时: 教学内容课内学时 第1章绪论 2 第2章线性表 4 第3章栈和队列 6 第4章串 4 笫5章数组和广义表 4 第6章树和二叉树 6 第7、8章略 第9章查找 4 第10章内部排序 4 课程总复习 2 六、考核形式: 期末考试与平时讨论相结合(80%和20%)。 期末试卷结构: 单项选择填空简答应用算法设计 20 15分20分15分30分

态。 3.3 算法描述和算法分析的方法,对于一般算法能分析出时间复杂度。 第2章线性表 (一)课程内容 2.1 线性表的逻辑结构 2.2 线性表的顺序存储结构 2.3 线性表的链式存储结构 2.4 顺序表和链表的比较 (二)学习目的与要求 本章目的是介绍线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在存储结构上如何实现这些基本运算。要求在熟悉这些内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题。本章重点是熟练掌握顺序表和单链表上实现的各种基本算法及相关的时间性能分析,难点是能够使用本章所学到的基本知识设计有效算法解决与线性表相关的应用问题。 (三)考核知识点与考核要求 1. 线性表的逻辑结构,要求达到“识记”层次。 1.1 线性表的逻辑结构特征。 1.2 线性表上定义的基本运算,并能利用基本运算构造出较复杂的运算。 2. 线性表的顺序存储结构.要求达到“综合应用”层次。 2.1 顺序表的含义及特点,即顺序表如何反映线性表中元素之间的逻辑关系。 2.2 顺序表上的插入、删除操作及其平均时间性能分析。 2.3 利用顺序表设计算法解决筒单的应用问题。 3. 线性表的链式存储结构,要求达到“综合应用”层次。 3.1 链表如何表示线性表中元素之间的逻辑关系。 3.2 链表中头指针和头结点的使用。 3.3 单链表、双链表、循环链表链接方式上的区别。 3.4 单链表上实现的建表、查找、插入和删除等基本算法,并分析其时间复杂度。 3.5 循环链表上尾指针取代头指针的作用,以及单循环链表上的算法与单链表上相应算法的异同点。 3.6 双链表的定义及其相关的算法。 3.7 利用链表设计算法解决简单的应用问题。 4.顺序表和链表的比较.要求达到“领会”层次。

数据结构第1章作业

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于() A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 4.一个算法应该是()。 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是() A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是() (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是()。 A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构()? A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10.以下那一个术语与数据的存储结构无关?() A.栈 B. 哈希表 C. 线索树 D. 双向链表 11.在下面的程序段中,对x的赋值语句的频度为() FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x+1; A. O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF A[j]>A[j+1] THEN A[j]与A[j+1]对换;

数据结构第一章试题

Chap1 一、选择题 1.算法的计算量的大小称为计算的()。 A.效率 B.复杂性 C.现实性 D.难度 2.计算机算法指的是(1),它必须具备(2)这三个特性。 (1)A.计算方法 B.排序方法 C.解决问题的步骤序列 D.调度方法 (2)A.可执行性、可移植性、可扩充性 B.可执行性、确定性、有穷性 C.确定性、有穷性、稳定性 D.易读性、稳定性、安全性 3.下面关于算法说法错误的是()。 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C.算法的可行性是指指令不能有二义性 D.以上几个都是错误的 4.从逻辑上可以把数据结构分为()两大类。 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 5.以下数据结构中,哪一个是线性结构()? A.广义表 B.二叉树 C.稀疏矩阵 D.串 6.在下面的程序段中,对x的赋值语句的频度为() FOR i:=1TO n DO FOR j:=1TO n DO x:=x+1; n) A.O(2n)B.O(n)C.O(n2)D.O(log 2 7.程序段FOR i:=n-1DOWNTO1DO FOR j:=1TO i DO IF A[j]>A[j+1] THEN A[j]与A[j+1]对换; 其中n为正整数,则最后一行的语句频度在最坏情况下是()。 A.O(n) B.O(nlogn) C.O(n3) D.O(n2) 8.以下哪个数据结构不是多型数据类型() A.栈B.广义表C.有向图D.字符串 9.以下数据结构中,()是非线性数据结构 A.树B.字符串C.队D.栈 二、判断题 1.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。() 2.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。() 3.程序一定是算法。() 4.数据的物理结构是指数据在计算机内的实际存储形式。() 5.数据结构的抽象操作的定义与具体实现有关。() 6.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。()

经典数据结构面试题(含答案)

栈和队列的共同特点是__________________________ .栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是 __________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 ____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________

《数据结构基础教程》习题及解答

《数据结构基础教程》习题及解答

《数据结构基础教程》习题解答(新) 第1章习题解答 一、填空 1.数据是指所有能够输入到计算机中被计算机加工、处理的符号的集合。 2.可以把计算机处理的数据,笼统地分成数值型和非数值型两大类。 3.数据的逻辑结构就是指数据间的邻接关系。 4.数据是由一个个数据元素集合而成的。5.数据项是数据元素中不可再分割的最小标识单位,通常不具备完整、确定的实际意义,只是反映数据元素某一方面的属性。 6.数据是以数据元素为单位存放在内存的,分配给它的内存区域称为存储结点。 7.每个数据元素都具有完整、确定的实际意义,是数据加工处理的对象。 8.如果两个数据结点之间有着逻辑上的某种

关系,那么就称这两个结点是邻接的。 9.在一个存储结点里,除了要有数据本身的内容外,还要有体现数据间邻接关系的内容。10.从整体上看,数据在存储器内有两种存放的方式:一是集中存放在一个连续的内存存储区中;一是利用存储器中的零星区域,分散地存放在内存的各个地方。 11.在有些书里,数据的“存储结构”也称为数据的“物理结构”。 12.“基本操作”是指算法中那种所需时间与操作数的具体取值无关的操作。 二、选择 1.在常见的数据处理中,B 是最基本的处理。 A.删除B.查找C.读取D.插入 2.下面给出的名称中, A 不是数据元素的同义词。 A.字段B.结点C.顶点D.记录 3.D 是图状关系的特例。

A.只有线性关系B.只有树型关系 C.线性关系和树型关系都不D.线性关系和树型关系都 4.链式存储结构中,每个数据的存储结点里D指向邻接存储结点的指针,用以反映数据间的逻辑关系。 A.只能有1个B.只能有2个C.只能有3个D.可以有多个 5.本书将采用C 来描述算法。 A.自然语言B.流程图(即框图)C.类C语言D.C语言 6.有下面的算法段: for (i=0; i

数据结构课后习题及解析第一章

第一章习题 一、问答题 1.什么是数据结构? 2.叙述四类基本数据结构的名称与含义。 3.叙述算法的定义与特性。 4.叙述算法的时间复杂度。 5.叙述数据类型的概念。 6.叙述线性结构与非线性结构的差别。 7.叙述面向对象程序设计语言的特点。 8.在面向对象程序设计中,类的作用是什么? 9.叙述参数传递的主要方式及特点。 10.叙述抽象数据类型的概念。 二、判断题(在各题后填写“√”或“×”) 1.线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。() 2.算法就是程序。() 3.在高级语言(如C或 PASCAL)中,指针类型是原子类型。() 三、计算下列程序段中X=X+1的语句频度 for(i=1;i<=n;i++) for(j=1;j<=i;j++) for(k=1;k<=j;k++) x=x+1; 四、试编写算法,求一元多项式P n (x)=a +a 1 x+a 2 x2+a 3 x3+…a n x n的值P n (x ),并确定算法中的每 一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用 求幂函数。注意:本题中的输入a i (i=0,1,…,n),x和n,输出为P n (x )。通常算法的输入和输 出可采用下列两种方式之一: (1)通过参数表中的参数显式传递。

(2)通过全局变量隐式传递。 试讨论这两种方法的优缺点,并在本题算法中以你认为较好的一种方式实现输入和输出。 实习题 设计实现抽象数据类型“有理数”。基本操作包括有理数的加法、减法、乘法、除法,以及求有理数的分子、分母。 第一章答案 1.3计算下列程序中x=x+1的语句频度 for(i=1;i<=n;i++) for(j=1;j<=i;j++) for(k=1;k<=j;k++) x=x+1; 【解答】x=x+1的语句频度为: T(n)=1+(1+2)+(1+2+3)+……+(1+2+……+n)=n(n+1)(n+2)/6 1.4试编写算法,求p n(x)=a0+a1x+a2x2+…….+a n x n的值p n(x0),并确定算法中每一语句的执 行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数。注意:本题中的输入为a i(i=0,1,…n)、x和n,输出为P n(x0)。算法的输入和输出采用下列方法(1)通过参数表中的参数显式传递(2)通过全局变量隐式传递。讨论两种方法的优缺点,并在算法中以你认为较好的一种实现输入输出。 【解答】 (1)通过参数表中的参数显式传递 优点:当没有调用函数时,不占用内存,调用结束后形参被释放,实参维持,函数通用性强,移置性强。 缺点:形参须与实参对应,且返回值数量有限。 (2)通过全局变量隐式传递 优点:减少实参与形参的个数,从而减少内存空间以及传递数据时的时间消耗

数据结构模拟卷(含答案)经典习题培训讲学

数据结构模拟卷(含答案)经典习题

练习题 一、单项选择题 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4

6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 数据结构是() A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 8. 算法分析的目的是() A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是 () A.插入B.删除 C.排序D.定位10. 下列图示的顺序存储结构表示的二叉树是( )

数据结构课程教学大纲

《数据结构》教学大纲 课程性质专业必修课 课程名称数据结构课程编号*04069 适用专业计算机科学与技术/软件工程开课学期第3学期 总学时64 理论50 学分数 4 实践14 一、课程性质与目标 数据结构课程属于专业必修课。通过本课程数据结构的学习,学生应实现如下目标: 1.知识目标:本课程主要讲述线性表、栈、队列、字符串、数组、树、二叉树、图、查找表、内部排序等常用数据结构的基本概念、操作及其典型应用例子。通过本课程的学习,应使学生掌握数据结构的概念及不同的存储结构、掌握一些典型算法原理和方法,且能够在不同存储结构上实现编程,同时,对于算法设计的方式和技巧也有所体会。 2.能力目标 (1)独立获取知识的能力——逐步掌握科学的学习方法,不断地扩展知识面,增强独立思考的能力,更新知识结构; (2)科学观察和思维的能力——运用数据结构的基本理论,熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构。 (3)分析问题和解决问题的能力——学会利用数据结构原理分析实际问题,提高发现问题与解决问题的能力。对部分优秀的学生,培养其在知名程序设计在线评测系统(如POJ等)中求解实际问题的能力。 (4)求实精神——通过数据结构理论课程教学,培养学生严谨求实的科学态度和刻苦钻研的作风。 (5)实践能力——通过学习,有意识地培养学生编写高质量、高效率程序的能力和风格。 3.素质目标:使学生具备一定的计算思维,热爱算法设计和程序实现,面对实际问题能转换为计算机能够求解的过程并选择合适的数据结构,设计出在时间和空间上具备一定高效率的程序,培养学生学习算法设计与实现的细心和耐心,培养学生坚韧不拔,攀登技术高峰的优秀品质。让部分优秀的学生热爱上湖南省大学生程序设计竞赛,体会ACM程序设计竞赛的魅力。 二、课程教学基本要求 课程前应该认真预习,特别是前导课程相关知识体系; 课中应该认真听课,参与教学过程中的互动、回答问题及联系实际编程; 课后积极做好复习、认真完成作业及课程设计相关实践教学的环节。作业应具备一定实用性的数据结构和算法实现为主,对部分优秀学生,引入一定量的知名程序设计在线评测系统(如POJ等)中与数据结构相关的题目进行编程并在线提交验证正确性与时间、空间效率。 三、教学内容与学时分配

数据结构课程作业

数据结构课程作业_A 交卷时间:2017-08-09 10:08:51 一、单选题 1. (7分)设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置脚注(10)表示用10进制表示。 A. 688 B. 678 C. 692 D. 696 纠错 得分: 7 知识点:第五章 展开解析 答案 C 解析第五章第二节综合题目 2. (7分)若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 纠错 得分: 0 知识点:第九章 展开解析 答案 D 解析第九章第一节有序表的查找

(7分)设某完全无向图中有n个顶点,则该完全无向图中有()条边。 A. n(n-1)/2 B. n(n-1) C. n2 D. n2-1 纠错 得分: 7 知识点:第七章 展开解析 答案 A 解析第七章第一节综合题目 4. (7分)若在任意一棵二叉树中,有n0个叶子结点,有n2个度为2的结点,则:n0=_____ A. n2+1 B. n2-1 C. n2+2 D. n2-2 纠错 得分: 7 知识点:第六章 展开解析 答案 A 解析第六章第二节二叉树的性质 5. (7分)栈的插入和删除操作在()进行。 A. 栈顶 B. 栈底 C. 任意位置 D. 指定位置

得分: 7 知识点:第三章 展开解析 答案 A 解析第三章第一节栈的表示和实现 6. (7分)设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。 A. 25 B. 10 C. 7 D. 1 纠错 得分: 7 知识点:第九章 展开解析 答案 B 解析第九章第一节有序表的查找 7. (7分)设某棵二叉树的高度为10,则该二叉树上叶子结点最多有()。 A. 20 B. 256 C. 512 D. 1024 纠错 得分: 7 知识点:第六章 展开解析 答案 C 解析第六章第六节二叉树的性质

数据结构模拟卷(含答案)经典习题

练习题 一、单项选择题 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4 1

6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 数据结构是() A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 8. 算法分析的目的是() A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是 () A.插入B.删除 C.排序D.定位 10. 下列图示的顺序存储结构表示的二叉树是( ) 2

数据结构课程教学大纲共三套

数据结构课程教学大纲(三套) 《数据结构》课程教学大纲(36/36课时) 一、课程的性质和任务 数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。因此,数据结构课程在计算机应用专业中具有举足轻重的作用。 本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。 二、课程的基本要求 本课程的教学基本要求如下: 本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。实践项目只利用课堂时间是不够的,必须提前布置给学生。通过本课程的学习与实践,学生应达到: 1、掌握数据结构的基本概念和基本理论; 2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析; 3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识; 4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构,定义所需的运算,设计相应的算法; 5、对算法进行分析和评价。

三、教学内容(一)理论教学

(二)实践环节

四、课时分配 《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。 五、大纲说明 本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本

数据结构作业第1章

第1章绪论 1. 填空 (1)()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 (2)()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 (3)从逻辑关系上讲,数据结构主要分为()、()、()和()。 (4)数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。 (5)算法具有五个特性,分别是()、()、()、()、()。 (6)在一般情况下,一个算法的时间复杂度是()的函数。 (7)设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。 2. 选择题 ⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链式存储结构中的数据元素之间的逻辑关系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 ⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。则表示该遗产继承关系的最合适的数据结构应该是()。 A 树 B 图 C 线性表 D 集合 ⑶算法指的是()。 A 对特定问题求解步骤的一种描述,是指令的有限序列。 B 计算机程序 C 解决问题的计算方法 D 数据处理 ⑷下面()不是算法所必须具备的特性。 A 有穷性 B 确切性 C 高效性 D 可行性 ⑸算法分析的目的是(),算法分析的两个主要方面是()。 A 找出数据结构的合理性 B 研究算法中输入和输出的关系 C 分析算法的效率以求改进 D 分析算法的易读性和文档性 E 空间性能和时间性能 F 正确性和简明性 G 可读性和文档性H 数据复杂性和程序复杂性 3. 判断题 (1)算法的时间复杂度都要通过算法中的基本语句的执行次数来确定。 (2)每种数据结构都具备三个基本操作:插入、删除和查找。 (3)逻辑结构与数据元素本身的内容和形式无关。 (4)基于某种逻辑结构之上的基本操作,其实现是唯一的。 4. 分析以下各程序段,并用大O记号表示其执行时间。

数据结构第一章练习题

《数据结构》第一章练习题 1、单项选择题 1.1数据结构是一门非数值计算的程序设计问题中计算机的( )以及它们之间的( )和运算等的学科。 ①A 数据元素 B 计算方法 C 逻辑存储 D 数据映像 ②A 结构 B 关系 C 运算 D 算法 1.2数据结构被形式的定义为(K,R ),其中K 是( )的有限集,R 是K 上的( )有限集。 ①A 算法B 数据元素C 数据操作D 逻辑结构 ②A 操作B 映像C 存储D 关系 1.3在数据结构中,从逻辑上可以把数据结构分为( )。 A 动态结构和静态结构 B 紧凑结构和非紧凑结构 C 线性结构和非线性结构 D 内部结构和外部结构 1.4数据结构在计算机内存中的表示是指( )。 A 数据的存储结构 B 数据结构 C 数据的逻辑结构 D 数据元素之间的关系 1.5在数据结构中,与所使用的计算机无关的是数据的( )结构。 A 逻辑 B 存储 C 逻辑和存储 D 物理 1.6算法分析的目的是(),算法分析的两个主要方面是( )。①A 找出数据结构的合理性 B 研究算法中输入与输出的关系 C 分析算法效率以求改进 D 分析算法的易懂性和文档性 ②A 空间复杂度和时间复杂度 B 正确性和简明性 C 可读性和文档性 D 数据复杂性和程序复杂性 1.7计算机算法是指( ),它必须具备输入、输出和( )等5个特性。 ①A 计算方法 B 排序方法 C 解决问题的有限运算序列 D 调度方法 ②A 可行性、可移植性和可扩充性 B 可行性、确定性和有穷性 C 确定性、有穷性和稳定性 D 易读性、稳定性和安全性 1.8在以下的叙述中,正确的是( )。 A 线性表和线性存储结构优于链表存储结构 B 二维数组是其数据元素为线性表的线性表 C 栈的操作方式是先进先出 D 队列的操作方式是先进后出 1.9在决定选择何种存储结构时,一般不考虑( )。 、管路敷设技术通过管线不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行 高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况 ,然后根据规范与规程规定,制定设备调试高中资料试卷方案。 、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

经典数据结构上机题_答案解析

数据结构上机实验题目 实验一线性表的顺序存储结构 实验学时 2学时 背景知识:顺序表的插入、删除及应用。 目的要求: 1.掌握顺序存储结构的特点。 2.掌握顺序存储结构的常见算法。 实验容 1.输入一组整型元素序列,建立顺序表。 2.实现该顺序表的遍历。 3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。4.判断该顺序表中元素是否对称,对称返回1,否则返回0。 5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 6.输入整型元素序列利用有序表插入算法建立一个有序表。 7.利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。 8. 利用该顺序结构实现循环队列的入队、出队操作。 8.编写一个主函数,调试上述算法。 #include #include

#define OVERFLOW 0 #define MAXSIZE 100 typedef int ElemType; typedef struct list {ElemType elem[MAXSIZE]; int length; }Sqlist; void Creatlist(Sqlist &L) {int i; printf("请输入顺序表的长度:"); //输入一组整型元素序列,建立一个顺序表。 scanf("%d",&L.length); for(i=0;i

数据结构第一章课后习题与答案

第 1 章 绪 论 (2005-07-14) - 第 1 章 绪 论 课后习题讲解 1. 填空 ⑴( )是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵( )是数据的最小单位,( )是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶ 从逻辑关系上讲,数据结构主要分为( )、( )、( )和( )。 【解答】集合,线性结构,树结构,图结构 ⑷ 数据的存储结构主要有( )和( )两种基本方法,不论哪种存储结构,都要存储两方面的内容:( )和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸ 算法具有五个特性,分别是( )、( )、( )、( )、( )。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹ 算法的描述方法通常有( )、( )、( )和( )四种,其中,( )被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺ 在一般情况下,一个算法的时间复杂度是( )的函数。 【解答】问题规模 ⑻ 设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为( ),若为 n*log25n,则表示成数量级的形式为( )。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题 ⑴ 顺序存储结构中数据元素之间的逻辑关系是由( )表示的,链接存储结构中的数据元素之间的逻辑关系是由( )表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。 ⑵ 假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。则表示该遗产继承关系的最合适的数据结构应该是( )。 A 树 B 图 C 线性表 D 集合 【解答】B 【分析】将丈夫、妻子和子女分别作为数据元素,根据题意画出逻辑结构图。 ⑶ 算法指的是( )。 A 对特定问题求解步骤的一种描述,是指令的有限序列。 B 计算机程序 C 解决问题的计算方法 D 数据处理 【解答】A 【分析】计算机程序是对算法的具体实现;简单地说,算法是解决问题的方法;数据处理是通过算法完成的。所以,只有A是算法的准确定义。 ⑷ 下面( )不是算法所必须具备的特性。 A 有穷性 B 确切性 C 高效性 D 可行性 【解答】C 【分析】高效性是好算法应具备的特性。 ⑸ 算法分析的目的是( ),算法分析的两个主要方面是( )。 A 找出数据结构的合理性 B 研究算法中输入和输出的关系 C 分析算法的效率以求改进 D 分析算法的易读性和文档性 E 空间性能和时间性能 F 正确性和简明性 G 可读性和文档性 H 数据复杂性和程序复杂性

数据结构习题汇编01 第一章 绪论 试题

《数据结构与算法设计》习题册 第一章绪论 一、单项选择题 1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和运 算等的学科。 ①A. 数据元素 B. 计算方法 C. 逻辑存储 D. 数据映象 ②A. 结构 B. 关系 C. 运算 D. 算法 2.数据结构被形式地定义为(K,R),其中K是①的有限集,R是K上的②有限集。 ①A. 算法 B. 数据元素 C. 逻辑结构 D. 数据操作 ②A. 操作 B. 存储 C. 映象 D. 关系 3.在数据结构中,从逻辑上可以把数据结构分成。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 线性结构和非线性结构 D. 内部结构和外部结构 4.数据结构在计算机内存中的表示是指。 A. 数据的存储结构 B. 数据结构 C. 数据的逻辑结构 D. 数据元素之间的关系 5.在数据结构中,与所使用的计算机无关的是数据的结构。 A. 逻辑 B. 存储 C. 逻辑和存储 D. 物理 6.算法分析的目的是①,算法分析的两个主要方面是②。 ①A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ②A. 空间复杂度和时间复杂度 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 7.计算机算法指的是①,它必须具备输入、输出和②等5个特性。 ①A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 8.在以下叙述中,正确的是。 A. 线性表的线性存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C. 栈的操作方式是先进先出 D. 队列的操作方式是先进后出 9.在决定选取何种存储结构时,一般不考虑。 A. 各结点的值如何 B. 结点个数的多少 C. 对数据有哪些运算 D. 所用编程语言实现这种结构是否方便 10.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储。

数据结构经典题目c语言代码

《数据结构》课程设计题目 (程序实现采用C语言) 题目1:猴子选王(学时:3) 一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 要求:m及n要求从键盘输入,存储方式采用向量及链表两种方式实现该问题求解。 //链表 #include #include // 链表节点 typedef struct _RingNode { int pos; struct _RingNode *next; }RingNode, *RingNodePtr; // 创建约瑟夫环,pHead:链表头指针,count:链表元素个数 void CreateRing(RingNodePtr pHead, int count) { RingNodePtr pCurr = NULL, pPrev = NULL; int i = 1; pPrev = pHead; while(--count > 0)

{ pCurr = (RingNodePtr)malloc(sizeof(RingNode)); i++; pCurr->pos = i; pPrev->next = pCurr; pPrev = pCurr; } pCurr->next = pHead; // 构成环状链表 } void KickFromRing(RingNodePtr pHead, int n) { RingNodePtr pCurr, pPrev; int i = 1; // 计数 pCurr = pPrev = pHead; while(pCurr != NULL) { if (i == n) { // 踢出环 printf("\n%d", pCurr->pos); // 显示出圈循序 pPrev->next = pCurr->next; free(pCurr); pCurr = pPrev->next; i = 1; } pPrev = pCurr;

数据结构教学大纲(完整资料).doc

【最新整理,下载后即可编辑】 XX师范学院大学本科专业教学大纲中文课程名称:数据结构 英文课程名称:Data Structures 适用专业:信息管理与信息系统 制定单位:商学院 执笔人: 审核人: 单位负责人: 制定时间:2017-2-10 XX师范学院教务处

二〇一七年一月

《数据结构》课程教学大纲 一、课程基本信息 (一)课程代码及课程名称 1.课程代码:06151090 2.课程名称(中/英文):数据结构/Data Structures (二)课程类别及课程性质 专业教育必修课程 (三)学时及学分: 总学时数:64;总学分数:3。 其中,讲授学时:32 ,实践(实验)学时:32。 (四)适用专业及开设学期 适用专业:信息管理与信息系统(本科) 开设学期:第二学期 (五)先修课程与后续课程 先修课程:大学计算机基础、高等数学、C语言程序设计 后续课程:数据库原理与应用、管理信息系统分析与设计、管理信息系统、Java程序设计(高级) 二、课程简介 “数据结构”是信息管理与信息系统专业一门重点专业基础

课程,也是学科专业核心专业基础课程之一,属于专业学位必修课程。本课程的教学任务是针对大量的信息处理对象,介绍对象信息与数据表示的各种抽象的、基本的逻辑结构及其上的基本运算操作。通过研究各种基本数据结构内在的逻辑关系和它们在计算机中的存储表示方式,初步建立数据结构上基本运算操作的正确性概念,同时,结合各种典型问题讨论其上的各种基本运算操作及其基本算法,讲授各种数据结构的特点、适用范围,以及对一些基本算法效率的定性和定量分析方法,为后续课程提供必要的数据结构基础。此外,配合实验课程的教学中,学生应理论联系实际,理论指导实践,通过规范地完成一系列数据结构实验进一步巩固所学的相关书本知识,在知识、能力、素质上得到进一步的提高。 三、教学目的与基本要求 (一)该课程教学目的与专业培养要求对应关系矩阵

数据结构第1章习题解答..

第1章习题解答 1.1什么是数据结构?一个数据结构结构的二元组定义形式是什么样的?举例解释其含义。 [解答] 概括地说,数据结构是互相有关联的数据元素的集合。也就是说,数据结构是由某个数据元素的集合和该集合中的数据元素之间的关系组成的,因此数据结构可以用一个二元组来表示。例如,B=(D,R),其中D是某一数据元素的集合,R是D上的关系的有限集。R所表示的是集合D的数据元素之间的逻辑关系,它表示的可能是数据元素之间客观存在的某种联系,也可能是为了处理问题的需要而人为组织的数据元素之间的某种关系,因此,称之为数据的逻辑结构。例如,一个农历节气表,就构成了一个数据结构,其数据元素是一年的农历二十四节气,数据元素之间的关系是节气的时间先后关系。又如,一个某年级学生的成绩排序表,也是一个数据结构,其数据元素是包含成绩项的该年级的学生记录,数据元素之间的关系是学生之间的成绩高低关系。为了在计算机中进行数据处理,必须把从实际问题中抽象出来的数据的逻辑结构映象到计算机的存储器中,即要把抽象出来的数据元素集合D 和数据元素之间的关系存储到计算机的存储器中,称之为数据的物理结构或存储结构,它是数据的逻辑结构在计算机中的表示。 1.2假设R是集合M上的一个关系,R的定义是什么?对实际问题而言,其含义是什么? [解答] 如果R是对集合M自身的笛卡尔积所取的一个子集,那么我们就说“R是集合M上的一个关系”。对实际问题而言,它表示的是集合M中元素的某种相关性。例如,对于参加一个羽毛球比赛的运动员集合,可以用一个二元关系表示出各场比赛的胜负关系。对于一组课程的集合,可以用一个二元关系表示出各门课程之间的先修和后续关系等等。 1.3设有集合M={d1,d2,d3,d4,d5}上的一个关 R={(d1,d2),(d2,d4),(d4,d5),(d2,d5),(d1,d4),(d1,d5),(d3,d5),(d1,d3)},试说明关系R具有什么样的性质。 [解答] 从二元关系的基本性质容易验证,该关系R是反自反的、反对称的、传递的关系。 因为关系R中没有(d i,d i)这样的元素,所以它是反自反的。 因为关系R中没有(元素d i,d j)和(d j,d i)同时存在的情况,所以它是反对称的。 关系R 的传递性表现在: 有元素(d1,d2),(d2,d4),同时有元素(d1,d4), 有元素(d1,d2),(d2,d5),同时有元素(d1,d5), 有元素(d1,d3),(d3,d5),同时有元素(d1,d5), 有元素(d1,d4),(d4,d5),同时有元素(d1,d5), 有元素(d2,d4),(d4,d5),同时有元素(d2,d5)。 1.4什么是线性结构?什么是非线性结构?举例说明。 [解答]

相关主题
文本预览
相关文档 最新文档