第一范文网 - 专业文章范例文档资料分享平台

数据结构习题及答案——严蔚敏

来源:用户分享 时间:2025/6/6 1:10:21 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

{for(j=0;jnext;

if(p==NULL||j>i) return(1); p->prior->next=p->next; p->next->prior=p->proir; free(p); return(0); } 8. 顺序存储:

void convert(elemtype list[],int l,int h) /* 个到第h个元素逆置*/ { int i;

elemtype temp;

for(i=h;i<=(l+h)/2;i++) {

temp=list[i]; list[i]=list[l+h-i]; list[l+h-i]=temp; } }

word文档 可自由复制编辑

将数组中第l

void exchange(elemtype list[],int n,int m); {

convert(list,0,n+m-1); convert(list,0,m-1); convert(list,m,n+m-1); }

该算法的时间复杂度为O(n+m),空间复杂度为O(1) 链接存储:(不带头结点的单链表) typedef struct node {

elemtype data; struct node *link; }NODE;

void convert(NODE **head,int n,int m) {

NODE *p,*q,*r; int i; p=*head; q=*head;

for(i=0;i

q=q->link; /*q指向an-1结点 */ r=q->link; q->link=NULL;

word文档 可自由复制编辑

while(r->link!=NULL)

r=r->link; /*r指向最后一个bm-1结点 */ *head=q; r->link=p; }

该算法的时间复杂度为O(n+m),但比顺序存储节省时间(不需要移动元素,只需改变指针),空间复杂度为O(1) 9.

typedef struct node {

elemtype data; struct node *link; }NODE;

NODE *union(NODE *ah,NODE *bh) {

NODE *a,*b,*head,*r,*q; head=ah; a=ah; b=bh;

while(a->link!=ah&&b->link!=bh) {

r=a->link; q=b->link;

word文档 可自由复制编辑

a->link=b; b->link=r; a=r; b=q; }

if(a->link==ah) /*a的结点个数小于等于b的结点个数 */ {

a->link=b;

while(b->link!=bh) b=b->link; b->link=head; }

if(b->link==bh) /*b的结点个数小于a的结点个数 */ {

r=a->link; a->link=b; b->link=r; }

return(head); }

该算法的时间复杂度为O(n+m),其中n和m为两个循环链表的结点个数. 10.

word文档 可自由复制编辑

搜索更多关于: 数据结构习题及答案——严蔚敏 的文档
数据结构习题及答案——严蔚敏.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0rers9imoz0fluh9boav3qhtz4wh9l00tue_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top