数据结构(c语言版)课后习题答案完整版资料.pdfVIP

  • 8
  • 0
  • 约3.06万字
  • 约 25页
  • 2023-10-12 发布于中国
  • 举报

数据结构(c语言版)课后习题答案完整版资料.pdf

--WORD格式-可编辑-- 第 1 章 绪论 5 .选择题: CCBDCA 6 .试分析下面各程序段的时间复杂度。 ( 1)O ( 1) ( 2 )O ( m*n ) ( 3 )O ( n 2 ) ( 4 )O ( log n ) 3 ( 5)因为 x++ 共执行了 n-1+n-2+ ⋯⋯+ 1= n(n-1)/2 ,所以执行时间为 O ( n 2 ) ( 6)O( n ) 第 2 章 线性表 1.选择题 babadbcabdcddac 2 .算法设计题 ( 6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。 ElemType Max (LinkList L ){ if(L-next==NULL) return NULL; pmax=L-next; // 假定第一个结点中数据具有最大值 p=L-next-next; while(p != NULL ){// 如果下一个结点存在 if(p-data pmax-data) pmax=p; p=p-next; } return pmax-data; ( 7 )设计一个算法,通过遍历一趟,将链表中所有结点的链接方向 逆转,仍利用原表的存储空间。 void inverse(LinkList L) { // 逆置带头结点的单 L 链表 p=L-next; L-next=NULL; while ( p) { q=p-next; // q 指向 的后继 *p -- --WORD格式-可编辑-- p-next=L-next; L-next=p; // *p 插入在头结点之后 p = q; } -- --WORD格式-可编辑-- } ( 10 )已知长度为 n 的线性表 A 采用顺序存储结 构,请写一时间复杂度为 O(n) 、空间 复杂度为 O(1) 的算法,该算法删除线性表中所有值为item 的数据元素。 [题目分析 ] 在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第 i 个元素,第 i+1 至第 n 个元素 要依次前移) 。本题要求删除线性表中所有值为 item 的数据 元素,并未要求元素间的相对位置不变。因此可以考虑设头尾两个指针( i=1 , j=n ), 从两 端向中间移动, 凡遇到值 item 的数据元素时, 直接将右端元素左移至值为

文档评论(0)

1亿VIP精品文档

相关文档