本文目录一览

1,数据结构习题

一、选择题1.C2.D解析:A.完全二叉树可以用数组存储,树是非线性结构 B.链表且插入和删除运算效率高 C.链表也有双向链表 ,有两个指针域3.A4.A.顺序表可随机访问任一元素5.D6.这道题你是不是弄错了 全都对啊7.D 满二叉树 :结点总数目N=2^H -1 H为数高度 ,求出结点总数为255 满二叉树,只有度为0 和度为2 的结点,度为0 的结点等于度为1 结点数目+1 因此选D 8.C 这题不用画图就可做出来, 后序遍历序列是dabec,------》得到根节点是:c 前序遍历;根左右 所以第一个一定是c 只有A项符合 9. A 虽然你没给图 但是一般都是A相 因为见过好多这个题 中序遍历和层次遍历结果一样10. D11.C12.B 在最坏情况:比较次数为___每次查找都要从第一个比较到最后一个,都要遍历N次 : 总的比较次数N*N,平均比较次数就是N 13. C二、填空题1.出栈2.n/2+n/(n+1) 1+2+3……n+n)/(n+1)=.n/2+n/(n+1) 3.14.设待排数据元素的关键字为(67,24,14,22,33,15,11,15),用选择法将其按升序排序,需要比较的次数为【 】。5.136.11 3+6+2=11 *7.15 方法 同选择题 上那个满二叉树8.无图9. 16 和第七题一样的方法
根据t(n) = t(en) + o(n) (0 < e <1) 则有 t(n) = o(n) 因此关键问题是怎样解决划分标准的问题, 因此产生下列线性时间找中位数的算法: 将数组a有n个元素, 划分成5个一组, 则共有[n/5]个元素, 对于每组用一般的排序找中位数,需要25次, 则总共需要o(25*[n/5]) = o(n), 然后在这些中位数中递归找其中位数需要t(n/5)次,然后以找到的中位数x来作为划分标准则显然划分时间为o(n), 再递归的划分, 显然最多有3n/4的元素小于或大于x, 则选择中位数的总复杂度为: t(n) = o(n) + t(n/5) + t(3n/4) 有t(n) = o(n)。 因此快速排序的复杂度为t(n) = 2t(n/2) + o(n) 有:t(n) = nlogn。 但最坏情况下复杂度为o(n^2),出现此条件的情况是n个数原来就已经按照规定要求排好序了。

数据结构习题

2,跪求高清 数据结构教程第5版学习指导帮一下急需教材求

数据结构教程(第5版)学习指导百度网盘在线观看资源,免费分享给您:https://pan.baidu.com/s/1qdwU64-HyXxeidaOicvXAA3199090_数据结构教程(第5版)学习指导.pdf49.69M 来自:百度网盘提取码: 1234复制提取码跳转 提取码:1234 本书是《数据结构教程(第5版)》(李春葆等编著,清华大学出版社出版)的配套学习指导书。两书章节一一对应,内容包括绪论、线性表、栈和队列、串、递归、数组和广义表、树和二叉树、图、查找、内排序、外排序和文件。各章中除给出本章练习题的参考答案以外还总结了本章的知识体系结构,并补充了大量的练习题且予以解析,因此自成一体,可以脱离主教材单独使用。

跪求高清 数据结构教程第5版学习指导帮一下急需教材求

3,数据结构在线作业

1. D2 D cedba3. A4. C. nx(n+1)/25. A6. A应该是第一层元素的个数7. C8. C9B10 A
大工11秋《数据结构》在线作业1一,单选题1. b2. b3. b4. a5. a6. c7. b8. b9. c10.b二,判断题1.b2.a3.b4.b5.b6.a7.b8.b9.b10.a 大工11秋《数据结构》在线作业2一,单选题1. difference(a,b,c)表示求集合a和b的差集c.若a=a. b. c. d. 正确答案:c2. 具有6个顶点的无向图至少应有()条边才能确保是一个连通图.a. 5b. 6c. 7d. 8正确答案:a3. min(a),函数的返回值是集合a的所有元素中按线性序最小的那个元素.则min(a. 2b. 3c. 4d. 0正确答案:a4. index(s,t)表示子串定位运算.若串t是串s的子串,则函数返回值是串t在串s中第一次出现的开始位置,否则返回值是0.若s="ababa",t="ba",则index(s,t)=( ).a. 0b. 1c. 2d. 3正确答案:c5. 在一棵二叉树上第5层的结点数最多为(),设树根为第1层.a. 16b. 15c. 8d. 32正确答案:a6. intersection(a,b,c)表示求集合a和b的交集c.若a=a. b. c. d. 正确答案:b7. 在一个具有n个顶点和e条边的无向图的邻接表中,边结点的个数为().a. nb. nec. ed. 2e正确答案:d8. union(a,b,c)表示求集合a和b的并集c.若a=a. b. c. d. 正确答案:a9. 在一个具有n个顶点和e条边的有向图的邻接表中,保存顶点单链表的表头指针向量的大小至少为().a. nb. 2nc. ed. 2e正确答案:a10. concat(s,t)表示连接运算.将串t连接在串s之后,形成新的串s.若s="beg",t="in",则concat(s,t)之后,s="( )".a. beginb. beinc. begnd. beggin正确答案:a二,判断题1. 树中的结点数等于所有结点的度数加1.a. 错误b. 正确正确答案:b2. 有向图用邻接表表示,顶点i的度是对应顶点i链表中结点个数.a. 错误b. 正确正确答案:a3. 字典是一种特殊的集合,其中每个元素由关键码和属性组成.a. 错误b. 正确正确答案:b4. 有向图用邻接表表示,顶点i的出度是对应顶点i链表中结点个数.a. 错误b. 正确正确答案:b5. 一个图的邻接矩阵表示是惟一的.a. 错误b. 正确正确答案:b6. 有向图的邻接矩阵一定是对称矩阵.a. 错误b. 正确正确答案:a7. 无向图的邻接矩阵一定是对称矩阵.a. 错误b. 正确正确答案:b8. 一个图的邻接表表示是惟一的.a. 错误b. 正确正确答案:a9. 非空二叉树上叶子结点数等于双分支结点数加1.a. 错误b. 正确正确答案:b10. 连通图的生成树不一定是惟一的.a. 错误b. 正确正确答案:b大工11秋《数据结构》在线作业3一,单选题1. 下述几种排序方法中,要求内存量最大的是().a. 插入排序b. 选择排序c. 堆排序d. 归并排序正确答案:d2. 堆排序是一种()排序.a. 插入b. 选择c. 交换d. 归并正确答案:b3. 在长度为n的顺序表中进行顺序查找,查找失败时需与关键字比较次数是( ).a. nb. 1c. n-1d. n+1正确答案:d4. 用起泡排序方法对n个记录按排序码从小到大排序时,当初始序列是按排序码从大到小排列时,与排序码总比较次数是().a. n-1b. nc. n+1d. n(n-1)/2正确答案:d5. 对线性表进行顺序查找时,要求线性表的存储结构是().a. 倒排表b. 索引表c. 顺序表或链表d. 散列表正确答案:c6. 对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,则查找元素26的查找长度为( ).a. 2b. 3c. 4d. 5正确答案:c7. 哈希表的平均查找长度和()无直接关系.a. 哈希函数b. 装填因子c. 哈希表记录类型d. 处理冲突的方法正确答案:c8. 排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为().a. 希尔排序b. 归并排序c. 插入排序d. 选择排序正确答案:d9. 磁带适合存储的文件类型是().a. 索引文件b. 顺序文件c. 散列文件d. 倒排文件正确答案:b10. 排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为().a. 插入排序b. 冒泡排序c. 希尔排序d. 选择排序正确答案:a二,判断题1. 散列表既是一种查找方法,又是一种存储方法.a. 错误b. 正确正确答案:b2. 在散列文件中删除记录时,只要对被删记录作一标记即可.a. 错误b. 正确正确答案:b3. 散列文件中存放一组记录的存储单位称为桶.a. 错误b. 正确正确答案:b4. 二分查找对线性表的存储结构无任何要求.a. 错误b. 正确正确答案:a5. 直接选择排序属于选择类排序,是一种稳定的排序方法.a. 错误b. 正确正确答案:a6. 哈希表查找无须进行关键字的比较.a. 错误b. 正确正确答案:a7. 对快速排序来说,初始序列为正序和反序都是最坏情况.a. 错误b. 正确正确答案:b8. 在执行某个排序过程中,出现排序码朝着最终位置相反方向移动,则该算法是不稳定的.a. 错误b. 正确正确答案:a9. 堆排序是一种不稳定的排序方法.a. 错误b. 正确正确答案:b10. 若待排序记录已按排序码基本有序,则应采用直接插入排序或起泡排序.a. 错误b. 正确正确答案:b

数据结构在线作业

4,求数据结构教程第5版上机实验题参考答案李春葆

第一题:第二题:第三题:第四题:第五题:第六题:扩展资料数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。

5,跪求数据结构某习题答案高手进啊

#include#include #include #define OK 1 #define ERROR 0 #define MAXSIZE 12500 typedef int Status; typedef int ElemType; typedef struct { int i,j; ElemType e; }Triple; typedef struct { Triple date[MAXSIZE+1]; int mu,nu,tu; }TSMatrix; Status CreatSMatrix( TSMatrix *M) //建立三元组 { int row,col,date,k; printf("请输入行数列数和非零元个数\n"); scanf("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu); while( M->mu <= 0 || M->nu <= 0 || M->tu > ( M->mu * M->nu ) || M->tu > MAXSIZE) { printf("输入不正确,请重新输入\n"); fflush(stdin); scanf("%d,%d,%d",&M->mu,&M->nu,&M->tu); } (*M).date[0].i = 0; for( k = 1; k <= (*M).tu ; k++) { printf("Please input the row,col and date\n"); scanf("%d,%d,%d",&row,&col,&date); M->date[k].i = row; M->date[k].j = col; M->date[k].e = date; } printf("输入非空元素组成的三元组完毕!\n"); return OK; } Status comp( int a, int b) //比较两个数字的大小AddSmatrix函数使用 { int i; if( a < b) i = 1; if( a == b) i = 0; if( a > b) i = -1; return i; } Status AddSMatrix( TSMatrix &A, TSMatrix &B, TSMatrix *C) //矩阵的相加 { Triple *Ap,*Bp,*Ae,*Be,*Ch,*Ce; if( A.mu != B.mu || A.nu != B.nu) { printf("\nA and B is not compared\n"); return ERROR; } // if( (*C).date ) // free( (*C).date ); C->mu = A.mu; C->nu = A.nu; Ap = &A.date[1]; Bp = &B.date[1]; Ae = &A.date[A.tu]; Be = &B.date[B.tu]; Ch = Ce = C->date; while( Ap <= Ae && Bp <= Be) { Ce++; switch( comp( Ap->i, Bp->i ) ) { case 1: { *Ce = *Ap; Ap++; }break; case -1: { *Ce = *Bp; Bp++; }break; case 0: { switch( comp(Ap->j,Bp->j) ) { case 0: { *Ce = *Ap; Ce->e += Bp->e; if( !Ce->e ) Ce--; Ap++; Bp++; }break; case 1: { *Ce = *Ap; Ap++; }break; case -1: { *Ce = *Bp; Bp++; } } }break; } } if( Ap > Ae) while( Bp <= Be ) { Ce++; *Ce = *Bp; Bp++; } if( Bp > Be) while( Ap <= Ae) { Ce++; *Ce = *Ap; Ap++; } C->tu = Ce - Ch; return OK; } Status Transpose( TSMatrix M, TSMatrix &T) //采用三元组表存储表示,求稀疏矩阵M的转置矩阵T { int k; T.mu = M.nu; T.nu = M.mu; T.tu = M.tu; if( T.tu ) { for( k = 1; k <= M.tu; k++) { T.date[k].i = M.date[k].j; T.date[k].j = M.date[k].i; T.date[k].e = M.date[k].e; } } printf("\n矩阵转置完毕!"); return OK; } Status CopySMatrix( TSMatrix M, TSMatrix &T) //矩阵的复制 { int k; if( M.tu ) { for( k = 1; k <= M.tu; k++) { T.date[k].i = M.date[k].i; T.date[k].j = M.date[k].j; T.date[k].e = M.date[k].e; } } printf("复制完毕!"); return OK; } Status DestroySMatrix( TSMatrix &M) //销毁稀疏矩阵的三元组顺序表 { if( M.mu <= 0 || M.nu <= 0 || M.tu > M.mu * M.nu) { printf("\n不存在矩阵!\n"); return ERROR; } for( int k = 1; k < M.tu + 1; k++) { M.date[k].i = 0; M.date[k].j = 0; M.date[k].e = 0; } M.mu = 0; M.nu = 0; M.tu = 0; printf("\n销毁完毕!\n"); return OK; } Status PrintSMatrix( TSMatrix M) //显示稀疏矩阵的三元组顺序表 { int k; if( M.mu <= 0 && M.nu <= 0) { printf("\n稀疏矩阵的三元组顺序表不存在\n"); return ERROR; } else { printf("稀疏矩阵的三元组顺序表是:\n"); for( k = 1; k <= M.tu; k++) { printf(" (%3d%3d%3d) ",M.date[k].i,M.date[k].j,M.date[k].e); } printf("\n显示完毕!"); return OK; } } void main() { TSMatrix M, T, A, B, C; CreatSMatrix( &M ); PrintSMatrix( M ); Transpose( M, T ); printf("\n转置后的矩阵是:\n"); PrintSMatrix( T ); printf("\n矩阵的复制\n"); CopySMatrix( M, T ); printf("\n\n\n复制的矩阵为\n"); PrintSMatrix( T ); printf("\n\n\n"); printf("建立矩阵A"); CreatSMatrix( &A ); printf("\n建立矩阵B"); CreatSMatrix( &B ); printf("\nA+B\n"); AddSMatrix( A, B, &C ); printf("\n矩阵M和B相加为:\n"); PrintSMatrix( C ); DestroySMatrix( M ); DestroySMatrix( T ); DestroySMatrix( B ); DestroySMatrix( C ); // PrintSMatrix( M ); printf("\n\n\n\t\t\t程序完毕!\n\n\n"); }

6,数据结构习题有谁有答案

您好!数据结构习题 一、选择题 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,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( ). A.ABCED B.DBCEA C.CDABE D.DCBEA 6.若进栈序列为1,2,3,4,则( )不可能是出栈序列. A.1,2,3,4 B.4,3,2,1 C.3,4,2,1 D.2,4,3,1 7.在深度为8的满二叉树中,叶子结点的个数为( ) A.63 B.64 C.127 D.128 *8.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是( ).A.cedba B. acbed C. decab D.deabc 9. 设有下列二叉树: 对此二叉树中序遍历的结果为___ A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA 10. 下列关于栈的叙述中正确的是____ A)在栈中只能插入数据 B)在栈中只能删除数据 C)栈是先进先出的线性表 D)栈是先进后出的线性表 11. 下列关于队列的叙述中正确的是___ A)在队列中只能插入数据 B)在队列中只能删除数据 C)队列是先进先出的线性表 D) 队列是先进后出的线性表 12. 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为___ A)N+1 B)N C)(N +1)/2 D)N/2 13. 在计算机中,算法是指___ A)查询方法 B)加工方法 C)解题方案的准确而完整的描叙 D)排序方法 二、填空题 1.栈的基本运算有三种:入栈、退栈和【 】. 2.对长度为N的线性表进行顺序查找,当查找失败时比较次数为【 】. 3.在长度为N的线性表中进行二分查找,在最快的情况下,需要比较的次数为【 】. 4.设待排数据元素的关键字为(67,24,14,22,33,15,11,15),用选择法将其按升序排序,需要比较的次数为【 】. 5.某二叉树中度为2的结点有12个,则该二叉树中有 【 】个叶子结点. 6.设一棵二叉树中有3个叶子结点,有6个度为1的结点,则该二叉树中总的结点数为【 】 个. *7.在深度为5的完全二叉树中,度为2的结点数最多为【 】个. 8.对下列二叉树进行前序、中序和后序遍历的结果分别是【 】 、【 】和 【 】 . 前序遍历 FCADBEG、中序遍历 ACBDFEG 后序遍历 ABDCGEF 9. 在深度为5的满二叉树中,叶子结点的个数为【 】一、选择题 1.C 2.D 解析:A.完全二叉树可以用数组存储,树是非线性结构 B.链表且插入和删除运算效率高 C.链表也有双向链表 ,有两个指针域 3.A 4.A.顺序表可随机访问任一元素 5.D 6.这道题你是不是弄错了 全都对啊 7.D 满二叉树 :结点总数目N=2^H -1 H为数高度 ,求出结点总数为255 满二叉树,只有度为0 和度为2 的结点,度为0 的结点等于度为1 结点数目+1 因此选D 8.C 这题不用画图就可做出来, 后序遍历序列是dabec,------》得到根节点是:c 前序遍历;根左右 所以第一个一定是c 只有A项符合 9. A 虽然你没给图 但是一般都是A相 因为见过好多这个题 中序遍历和层次遍历结果一样 10. D 11.C 12.B 在最坏情况:比较次数为___每次查找都要从第一个比较到最后一个,都要遍历N次 : 总的比较次数N*N,平均比较次数就是N 13. C 二、填空题 1.出栈 2.n/2+n/(n+1) 1+2+3……n+n)/(n+1)=.n/2+n/(n+1) 3.1 4.设待排数据元素的关键字为(67,24,14,22,33,15,11,15),用选择法将其按升序排序,需要比较的次数为【 】. 5.13 6.11 3+6+2=11 *7.15 方法 同选择题 上那个满二叉树 8.无图 9. 16 和第七题一样的方法

文章TAG:数据结构李春葆第五版课后答案  数据结构习题  
下一篇