选择适当的数据结构存储关系矩阵,用C语言编程实现:A上的两个二元关 20

选择适当的数据结构存储关系矩阵,用C语言编程实现:A上的两个二元关系的合成... 选择适当的数据结构存储关系矩阵,用C语言编程实现:A上的两个二元关系的合成 展开
 我来答
非诺专6030
2016-11-04 · TA获得超过1195个赞
知道小有建树答主
回答量:1021
采纳率:37%
帮助的人:373万
展开全部
1“ab中内容按增序排列”体现在输入上,比如A:12345就不要给自己找麻烦写成54321,不然还得排序;⑴.因为是增序,所以用指针遍历A、B链表,每次获取较小值加入C,注意重复筛选,可以在插入时多判断一下,也可以在最后遍历一次C表。⑵.以A表为主,每移动一次A表指针都要遍历一次B表至其表尾或(A->datadata)即此时B的值已经大于A。最后就是主函数中提供输入A、B表的提示语,还有3次printf。下面提供一个我写过的类似代码,忘记是什么题目了,好像就是(1)。#include#include/*链表节点定义*/typedefstructnode{intdata;structnode*next;}node;node*head1,*head2,*Head;/*链表节点创建*/voidinitiatesl(node**h){*h=(node*)malloc(sizeof(node));(*h)->next=NULL;}/*根据给定表长生成基础表1、2*/voidcreate_list(node*h,inti){intn=0;node*p,*q=h;for(;nnext=p;scanf("%d",&q->next->data);q=q->next;}}/*链表合成*/voidmerge(node*H,node*h1,node*h2){node*p=h1->next,*q=h2->next,*r=H,*s=H;for(;p!=NULL&&q!=NULL;r=r->next){initiatesl(&r->next);if(p->datadata){r->next->data=p->data;p=p->next;}elseif(p->data>q->data){r->next->data=q->data;q=q->next;}else{r->next->data=p->data;p=p->next;q=q->next;}}if(p==NULL)for(;q!=NULL;q=q->next,r=r->next){initiatesl(&r->next);r->next->data=q->data;}elsefor(;p!=NULL;p=p->next,r=r->next){initiatesl(&r->next);r->data=p->data;}}/*主函数及交互界面*/intmain(void){inta,b;node*s,*S=head1;initiatesl(&head1);/*创建三个头结点*/initiatesl(&head2);initiatesl(&Head);printf("Pleaseinputthelengthofthetwolist.(a,b)\n");/*给定长度输入样式*/scanf("%d,%d",&a,&b);printf("Inputlistone:");/*创建链表1、2*/create_list(head1,a);printf("Inputlisttwo:");create_list(head2,b);merge(Head,head1,head2);s=Head->next;printf("L:");for(;s!=NULL;s=s->next)printf("%d",s->data);printf("\n");return0;}
追问
大哥,确定这是我提问的问题吗…
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JRMT灬逆天
2018-06-05
知道答主
回答量:16
采纳率:16%
帮助的人:2.7万
展开全部
大哥,这个问题解决了吗?我有同问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式