2022年数据结构算法设计期末复习题文 .pdf
《2022年数据结构算法设计期末复习题文 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构算法设计期末复习题文 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、二、算法设计1、设计一个算法,通过一趟遍历在单链表中确定值最大的结点。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; 2、设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。void inverse(LinkList &L) / 逆置带头结点的单链
2、表L p=L-next; L-next=NULL; while ( p) q=p-next; / q 指向 *p 的后继p-next=L-next; L-next=p; / *p 插入在头结点之后p = q; 3、 设计一个算法, 删除递增有序链表中值大于mink 且小于 maxk 的所有元素 (mink 和 maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同)。void delete(LinkList &L, int mink, int maxk) p=L-next; / 首元结点while (p & p-datanext; / 查找第一个值 mink 的结点if (p) whi
3、le (p & p-datanext; / 查找第一个值maxk 的结点q=pre-next; pre-next=p; / 修改指针while (q!=p) s=q-next; delete q; q=s; / 释放结点空间 /if 4、假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针。已知s 为指向链表中某个结点的指针,试编写算法在链表中删除指针s 所指结点的前驱结点。typedef struct LNode ElemType data; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
4、 - - - 第 1 页,共 4 页 - - - - - - - - - struct LNode *next; LNode, *LinkList; ElemType DeleteNode(LinkList s) /* 删除指针s所指结点的前驱结点,并返回被删结点的元素值*/ LinkList p; p=s-next; while(p-next-next!=s) p=p-next; ElemType e=p-next-data; p-next=s; return e; 5、已知长度为n 的线性表A 采用顺序存储结构,请写一时间复杂度为0(n)、空间复杂度为0(1)的算法,该算法删除线性表中所有
5、值为item 的数据元素。void DeleteItem(SeqList *L,ElemType item) int i=0,j=L-last; while(ij) while(ielemi!=item) i+; while(ielemi=item) j-; if(ielemi=L-elemj; i+; j-; L-last=i-1; 6、写一个算法,求出循环链表结点的个数。(不包括头结点)int count(Linklist head) int n=0; ListNode.p=head-next; while(p!=head) n+;P=P-next; return n; 7、写一算法在单链
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构算法设计期末复习题文 2022 数据结构 算法 设计 期末 复习题
限制150内