| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1493 人关注过本帖
标题:请教一个链表合并的问题!!!
取消只看楼主 加入收藏
蓝天
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-9-29
收藏
 问题点数:0 回复次数:1 
请教一个链表合并的问题!!!

请各位英雄帮小弟看看这条程序,功能是将所有在链表B中但不在链表A中的数据元素插入到A中,之后将链表A的元素输出(链表A,B中的元素按非递减排列)。该程序在VC++6.0中可以通过,但输出结果时却有问题,请各位帮帮忙! 多谢! #include"stdio.h" #include"stdlib.h" #include"iostream.h" #define NULL 0 typedef int datatype; typedef struct node * pointer; typedef struct node{ datatype data; pointer next; }lnode;

pointer initlist(){ //初始化链表 pointer l; l=(pointer)malloc(sizeof(lnode)); l->next=NULL; return l; }

pointer create_list(){ //创建链表 pointer head,p,q; datatype x; head=(pointer)malloc(sizeof(lnode)); p=head; cout<<"请从小到大输入链表的元素,输入0则结束:\n"; cin>>x; while(x!=0) { q=(pointer)malloc(sizeof(lnode)); q->data=x; p->next=q; p=q; cout<<"请输入下一个数:\n"; cin>>x; } p->next=NULL; return head; }

void print_list(pointer head){ //输出链表中的元素 pointer p; p=head->next; while(p!=NULL) { cout<<p->data<<"\t"; p=p->next; } cout<<endl; }

pointer union_list(pointer p,pointer q) { //将所有在链表Q中但不在链表P中的数据元素插入到P中 pointer r; r=p->next; q=q->next; while(r->data!=NULL) { while(q->data!=NULL) { if(q->data==r->data) q=q->next; else { p->next=q; p=q; q=q->next; } } r=r->next; } return p; }

void main() { pointer Alist,Blist,Clist; cout<<"请输入链表A的元素:\n"; Alist=create_list(); //链表A中的元素按非递减排列 print_list(Alist); cout<<"\n请输入链表B的元素:\n"; Blist=create_list(); //链表A中的元素按非递减排列 print_list(Blist); union_list(Alist,Blist); print_list(Alist); cout<<endl; }

搜索更多相关主题的帖子: 链表 
2005-10-14 13:35
蓝天
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-9-29
收藏
得分:0 
多谢!!1
很多谢你的帮忙!!!非常感谢!!!![
2005-10-22 18:41
快速回复:请教一个链表合并的问题!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015561 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved