内容发布更新时间 : 2024/11/14 14:18:38星期一 下面是文章的全部内容请认真阅读。
《数据结构》习题集
杨先凤 朱小梅 编
西南石油大学计算机科学学院
二零零七年九月
目 录
习题一 绪论................................................................................................................................... 1 习题二 线性表............................................................................................................................... 5 习题三 栈和队列......................................................................................................................... 10 习题四 串..................................................................................................................................... 14 习题五 数组和广义表 ................................................................................................................. 17 习题六 树和二叉树..................................................................................................................... 21 习题七 图..................................................................................................................................... 27 习题八 查找................................................................................................................................. 32 习题九 排序................................................................................................................................. 36 习题十 文件................................................................................................................................. 40
习题一 绪论
一、单项选择题
1.数据结构被形式地定义为(K,R),其中K是(① )的有限集,R是K上的(② )有限集。
①A.算法 B.数据元素 C.数据操作 D 逻辑结构 ②A.操作 B.映像 C存储 D 关系 2.在数据结构中,从逻辑上可以把数据结构分成( )。
A 动态结构和静态结构 B 紧凑结构和非紧凑结构 C 线性结构和非线性结构 D.内部结构和外部结构 3.数据结构在计算机内存中的表示是指( )。
A.数据的存储结构 B 数据结构
C 数据的逻辑结构 D.数据元素之间的关系
4.在数据结构中,与所使用的计算机无关的是数据的( )结构。
A.逻辑 B.存储 c.逻缉和存储 D.物理 5.算法分析的目的是(① ),算法分析的两个主要方面是(② )。
① A找出数据结构的合理性 B研究算法中的输入和输出的关系 C分折算治的效率以求改进 D分析算法的易读性和文档性 ② A 空间复杂度和时间复杂度 B 正确性和简明性
C 可读性和文档性 D 数据复杂性和程序复杂性
6.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储( )。
A数据的处理方法 B.数据元素的类型 C数据元素之间的关系 D数据的存储方法 7. 算法的计算量的大小称为计算的( )。
A.效率 B. 复杂性 C. 现实性 D. 难度 8. 算法的时间复杂度取决于( )
A.问题的规模 B. 待处理数据的初态 C. A和B 9. 下面说法错误的是( )
(1)算法原地工作的含义是指不需要任何额外的辅助空间
n
(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低
A.(1) B.(1),(2) C.(1),(4) D.(3) 10.在下面的程序段中,对x的赋值语句的频度为( )
for (i=1;i<=n;i++)
for (j=1;j<=n;j++) x:=x+1;
2
A. O(2n) B.O(n) C.O(n) D.O(log2n)
二、判断题(在各题后填写“√”或“×”)
1. 线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。( ) 2. 数据元素是数据的最小单位。( ) 3. 记录是数据处理的最小单位。 ( )
1
4. 算法就是程序。( )
5. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( ) 6.数据的物理结构是指数据在计算机内的实际存储形式。( )
7. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。( ) 8. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( )
9. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址一定是不连续的。( ) 10. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. ( )
三、填空题
1. 数据结构是研讨数据的_ _和_ _,以及它们之间的相互关系,并对与这种结构定义相应的_ _,设计出相应的 _。
2.对于给定的n个元素,可以构造出的逻辑结构有 , , ,__ _四种。 3.在线性结构中,第一个结点 前驱结点,其余每个结点有且仅有 个前驱结点;最后一个结点 后续结点,其余每个结点有且仅有 个后续结点。
4.在树形结构中,树根结点没有 结点,其余每个结点有且只有 个前驱结点;叶子结点没有 结点,其余每个结点的后续结点可以 。
5.一个数据结构在计算机中 称为存储结构。
6.通常,存储结点之间可以有__________、__________、__________、_________四种关联方式,称为四种基本存储方式。
7.抽象数据类型的定义仅取决于它的一组__ _,而与_ _无关,即不论其内部结构如何变化,只要它的_ _不变,都不影响其外部使用。
8.数据结构中评价算法的两个重要指标是
9.一个算法具有5个特性: 、 、 ,有零个或多个输入、有一个或多个输出。
10.常见时间复杂性的量级有:常数阶O(___________)、对数阶O(___________)、线性阶O (___________)、平方阶O(___________)、和指数阶O(___________)。通常认为,具有指数阶量级的算法是___________,而量级低于平方阶的算法是___________的。
11. 计算机执行下面的语句时,语句s的执行次数为 _______ 。
for (i=l;i
2
12.设m.n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。 以下是该函数的程序段,请将未完成的部分填入,使之完整
int f(m,n) int m,n; { if(m==1)
return (1) ; if(n==1){
return (2) ;} if(m {return f(m,m);} if (m==n) {return 1+ (3) ;} return f(m.n-1)+f(m-n, (4) ); } 执行程序,f(6,4)= 。 13. 程序段“i=1;while(i<=n)i=i*2;”的时间复杂度T(n)= ___________。 四、应用题 1. 有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑图形表示,并指出它 们分别属于何种结构。 (1)A=(K,R),其中: K={a,b,c,d,e,f,g,h} R={r} K={a,b,c,d,e,f,g,h} R={r} r={ K={1,2,3,4,5,6} R={r} r={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)} 这里的圆括号对表示两结点是双向的。 2.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最4方便,写出这些结构? 3. 调用下列函数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; 3