数据结构题及c语言版答案第五章答案,数据结构第五章数组和广义表习题及答案.doc...

41528d3028836879cd698677c3999917.gif数据结构第五章数组和广义表习题及答案.doc

习题五数组和广义表一、单项选择题1.常对数组进行的两种基本操作是()A建立与删除B索引与修改C查找与修改D查找与索引2.对于C语言的二维数组DATATYPEAMN,每个数据元素占K个存储单元,二维数组中任意元素AI,J的存储位置可由式确定ALOCI,JAM,NN1IJKBLOCI,JLOC0,0MNIJKCLOCI,JLOC0,0N1IJKDLOCI,JN1IJK3.稀疏矩阵的压缩存储方法是只存储A非零元素B三元祖(I,J,AIJ)CAIJDI,J4数组A05,06的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A5,5的地址是。A1175B1180C1205D12105AN,N是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组TN(N1)/2中,则对任一上三角元素AIJ对应TK的下标K是()。AI(I1)/2JBJ(J1)/2ICI(JI)/21DJ(I1)/216用数组R存储静态链表,结点的NEXT域指向后继,工作指针J指向链中结点,使J沿链移动的操作为。AJRJNEXTBJJ1CJJNEXTDJRJNEXT7对稀疏矩阵进行压缩存储目的是()。A.便于进行矩阵运算B.便于输入和输出C.节省存储空间D.降低运算的时间复杂度8已知广义表LS=A,B,C,D,E,F,运用HEAD和TAIL函数取出LS中原子E的运算是。AHEADTAILLSBTAILHEADLSCHEADTAILHEADTAILLSDHEADTAILTAILHEADLS9广义表((A,B,C,D))的表头是(),表尾是()。AAB()C(A,B,C,D)D(B,C,D)10设广义表L((A,B,C)),则L的长度和深度分别为()。A1和1B1和3C1和2D2和311下面说法不正确的是。A广义表的表头总是一个广义表B广义表的表尾总是一个广义表C广义表难以用顺序存储结构D广义表可以是一个多层次的结构二、填空题1.通常采用___________存储结构来存放数组。对二维数组可有两种存储方法一种是以___________为主序的存储方式,另一种是以___________为主序的存储方式。2用一维数组B与列优先存放带状矩阵A中的非零元素AI,J1≤I≤N,I2≤J≤I2,B中的第8个元素是A中的第__行,第__列的元素。3.设N行N列的下三角矩阵A已压缩到一维数组B1N(N1)/2中,若按行为主序存储,则AI,J对应的B中存储位置为_______。4所谓稀疏矩阵指的是_。5广义表简称表,是由零个或多个原子或子表组成的有限序列,原子与表的差别仅在于____。为了区分原子和表,一般用____表示表,用_____表示原子。一个表的长度是指__,而表的深度是指____6.设广义表L,,则HEADL是;TAILL是;L的长度是;深度是__。7.基于三元组的稀疏矩阵转置的处理方法有两种,以下运算按照矩阵A的列序来进行转置,请在___________处用适当的句子用以填充。TRANS_SPARMATSPMATRIXTPA,SPMATRIXTPB{BMUANUBNUAMUBTUATUIFATU{Q1FORCOL1___________COLFORP1PTAG0QVALDATAPVALDATA}ELSE{2IF3{TREVERSEPVALPTRTPSTWHILESVALPTRTPNULLSSVALPTRTPSVALPTRTPGLISTMALLOCSIZEOFGNODESSVALPTRTPSTAG1SVALPTRTPNULLSVALPTRHPH4__}ELSE{QGLISTMALLOCSIZEOFGNODEQTAG1QVALPTRTPNULL5}}}RETURNQ}第5章数组和广义表一、单项选择题1.C2.C3.A4.A5.B6.A7.C8.C9.C10.C11.A二、填空题1.顺序、列序、行序2第1行第3列3.II1/2J1TAG0//处理原子(2)HREVERSEPVALPTRHP//处理表头(3)PVALPTRTP//产生表尾的逆置广义表(4)SVALPTRTPT//连接(5)QVALPTRHPH//头结点指向广义表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 绪论 一、基本内容 数据、数据元素、数据对象、数据结构存储结构和数据类型等概念术语的确定含义;抽象数据类型的定义、表示和实现方法;描述算法的类C语言;算法设计的基本要求以及从时间和空间角度分析算法的方法。 二、学习要点 1.熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之间的关系。分清哪些是逻辑结构的性质,哪些是存储结构的性质。 2.了解抽象数据类型的定义、表示和实现方法。 3.熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式。 4.理解算法五个要素的确切含义:①动态有穷性(能执行结束);②确定性(对于相同的输入执行相同的路径);③有输入;④有输出;⑤可行性(用以描述算法的操作都是足够基本的)。 5.掌握计算语句频度和估算算法时间复杂度的方法。 三、基础知识题 1.1 简述下列术语:数据、数据元素、数据对象、数据结构存储结构、数据类型和抽象数据类型。 答:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示(又称映像)。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。程序设计语言中的数据类型是一个值的集合和定义在这个值集上的一组操作的总称。而抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
1.两个串相等的充要条件是( )。A.串长度相等B.串长度任意 C.串中各位置字符任意 D.串中各位置字符均对应相等 2.对称矩阵的压缩存储:以行序为主序存储下三角中的元素,包括对角线上的元素。二维下标为( i, j ),存储空间的一维下标为k,给出k与 i, j (i<j)的关系k=( ) (1<= i, j <= n , 0<= k < n*(n+1)/2)。 A.i*(i-1)/2+j-1 B.i*(i+1)/2+j C.j*(j-1)/2+i-1 D.j*(j+1)/2+i 3.二维数组A[7][8]以列序为主序的存储,计算数组元素A[5][3] 的一维存储空间下标 k=( )。 A.38 B.43 C.26 D.29 4.已知一维数组A采用顺序存储结构,每个元素占用4个存储单元,第9个元素的地址为144,则第一个元素的地址是( )。A.108 B.180 C.176 D.112 5. 下面( )不属于特殊矩阵。 A.对角矩阵 B. 三角矩阵C. 稀疏矩阵 D. 对称矩阵 6. 假设二维数组M[1..3, 1..3]无论采用行优先还是列优先存储,其基地址相同,那么在两种存储方式下有相同地址的元素有( )个。 A. 3 B. 2 C. 1 D. 0 7. 若Tail(L)非空,Tail(Tail(L))为空,则非空广义表L的长度是( )。(其中Tail表示取非空广义表的表尾) A. 3 B. 2 C. 1 D. 0 8.串的长度是( )。 A.串中不同字母的个数 B.串中不同字符的个数C.串中所含字符的个数,且大于0 D.串中所含字符的个数 9.已知广义表(( ),(a), (b, c, (d), ((d, f)))),则以下说法正确的是( )。A.表长为3,表头为空表,表尾为((a), (b, c, (d), ((d, f))))B.表长为3,表头为空表,表尾为(b, c, (d), ((d, f)))C.表长为4,表头为空表,表尾为((d, f)) D.表长为3,表头为(()),表尾为((a), (b, c, (d), ((d, f))))10.广义表A=(a,b,c,(d,(e,f))),则Head(Tail(Tail(Tail(A))))的值为( )。(Head与Tail分别是取表头和表尾的函数) A.(d,(e,f)) B.d C.f D.(e,f)二、填空题(每空 2 分,共 8 分)。 1.一个广义表为 F = (a, (a, b), d, e, (i, j), k),则该广义表的长度为________________。GetHead(GetTail(F))= _______________。 2.一个n*n的对称矩阵,如果以行或列为主序压缩存放入内存,则需要 个存储单元。 3.有稀疏矩阵如下: 0 0 5 7 0 0 -3 0 0 0 4 0 0 2 0 它的三元组存储形式为: 。 三、综合题(共 22 分)。 1.(共8分)稀疏矩阵如下图所示,描述其三元组存储表示,以及转置后的三元组表示。 0 -3 0 0 0 4 0 6 0 0 0 0 0 0 7 0 15 0 8 0 转置前(4分): 转置后(4分): 2. (共14分)稀疏矩阵M的三元组表如下,请填写M的转置矩阵T的三元组表,并按要求完成算法。 (1)写出M矩阵转置后的三元组存储(6分): M的三元组表: T的三元组表: i j e 2 1 3 3 2 4 4 2 5 4 3 5 5 1 6 5 3 6 i j e (2)如下提供了矩阵采用三元组存储时查找指定行号(m)和列号(n)元素值的算法框架,将代码补充完整(每空2分,共8分)。 typedefstruct{ inti,j; ElemType e; }Triple; typedefstruct{ Triple data[MAXSIZE+1]; //data[0]未用 intmu,nu,tu; //矩阵的行数,列数和非零元的个数 }TSMatrix; voidFind_TSMatrix(TSMatrix M, int m, int n, ElemType&e) //M为要查找的稀疏矩阵三元组存储,m为要查找的元素的行号,n为列号,e为查找后得到的值。 { for ( i=1 ; i<=M.tu ;i++) if( && ) { e=M.data[i].e; ; } if( ) e=0; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值