一道 考研题目 想了半天 最后几个空还是想不出啊!高手帮忙 有分伺候!

conquersky 2006-11-08 01:33:40
题目:设两个带头结点单链表的头指针分别为A和B 且表中节点数据类型为整型,下面算法产生A和B的并集并以C存储之,请填写空白,完成其功能。

typedef struct node
{ int data;struct node *next;
}lnode,*link

link union(link A,link B)
{
link C,r,p,q; C=r=(link)malloc(sizeof(lnode));
p=A->next;
while( _________ )
{ q=(link)malloc(sizeof(lnode));
q->data=p->data;
_______________;
________________;
p=p->next;}

r->next=NULL;
_____________;
while(q)
{p=A->next;
while(p)
if(p->data==q->data) break; else p=p->next;
if (___________)
{ ________________;
r->data=q->data;
_______________;
_____________;}
q=q->next;}
return(c);
}


}




...全文
556 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhichao2008 2006-11-10
  • 打赏
  • 举报
回复
看到教研题,心里比较激动想做一下呵呵
chenzhichao2008 2006-11-10
  • 打赏
  • 举报
回复
typedef struct node
{ int data;struct node *next;
}lnode,*link

link union(link A,link B)
{
link C,r,p,q; C=r=(link)malloc(sizeof(lnode));
p=A->next;
while( ____p_____ )
{ q=(link)malloc(sizeof(lnode));
q->data=p->data;
_______r->next=q________;
_______r = r->next_________;
p=p->next;
}

r->next=NULL;
_ q = B->next____________;
while(q)
{ p=A->next;
while(p)
if(p->data==q->data) break; else p=p->next;
if (____!p_______)
{ ____r=(link)malloc(sizeof(lnode))____________;
r->data=q->data;
____r->next = C->next___________;
____C->next = r_________;
}
q=q->next;
}
return(c);
}


}
conquersky 2006-11-08
  • 打赏
  • 举报
回复
汗 还是 jinkai7798 理解深刻啊 佩服!!! 高手啊 再看看,还有高见没有,晚上给分
Brightzliu 2006-11-08
  • 打赏
  • 举报
回复
我怎么题目都没有看明白啊?
"设两个带头结点单链表的头指针分别为A和B 且表中节点数据类型为整型,下面算法产生A和B的并集并以C存储之,请填写空白,完成其功能。
。"
那A和B的并集,就是AB相同的只插入一次,不同的都插入,那它们在C中的结点位置没有限制吗?
Fat32jin 2006-11-08
  • 打赏
  • 举报
回复
1.p
2.r->next = q
3.r=r->next
4.q=B->next
5.!p
6.r=(link)malloc(sizeof(lnode));
7.r->next=C->next
8.C->next=r

先尾插后头插,应该是标准答案,一个空不多不少
why3668 2006-11-08
  • 打赏
  • 举报
回复
我做的和楼上一样
不过觉得为什么这道题要我们添上两句
r->next=NULL;
r->next=NULL;
敬请赐教。
mmmcd 2006-11-08
  • 打赏
  • 举报
回复
typedef struct node
{ int data;struct node *next;
}lnode,*link

link union(link A,link B)
{
link C,r,p,q; C=r=(link)malloc(sizeof(lnode));
p=A->next;
while( p )
{ q=(link)malloc(sizeof(lnode));
q->data=p->data;
r->next=q;
r=r->next;
p=p->next;}

r->next=NULL;
q=B->next;
while(q)
{p=A->next;
while(p)
if(p->data==q->data) break; else p=p->next;
if (!p)
{ r=r->next=(link)malloc(sizeof(lnode));
r->data=q->data;
r->next=NULL;
r->next=NULL;}
q=q->next;}
return(C);
}

我最讨厌程序填空
starrygis 2006-11-08
  • 打赏
  • 举报
回复
路过...
顶一下。。。
DentistryDoctor 2006-11-08
  • 打赏
  • 举报
回复
复习一下数据结构吧。
fflush 2006-11-08
  • 打赏
  • 举报
回复
jinkai7798 是对的

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧