数据结构的题,把La{1,2,3,4,6}和Lb{2,3,5,7,9}两个链表链接成{9,7,6,5,4,3,3,2,2,1},请问这个程序有什么错误

fvshshhs 2019-10-08 12:45:23
#include<stdio.h> #include <malloc.h> typedef struct Lnode { int data; struct Lnode*next;} Lnode,*Linklist; void create(Linklist L,int a[],int n) { int i; Lnode *s,*p; L=0; for(i=n-1;i<=0;i--) (Lnode*s; s->data=a[i]; s->next=L; L->next=s; L=s;) } void printlist (Linklist L) {Lnode*p; p=L; while(p) {printf("%d\n",p->data); p=p->next;} } void main() {Linklist La; int a[5]={1,2,3,4,6}; create(La,a,5); prinrlist(La);} {Linklist Lb; int a[5]={2,3,5,7,9}; create{Lb,b,5); printlist(Lb);} void union_OL(Linklist &La,Linklist &Lb) pa=La->next; pb=Lb->next; rc=La; while(pa->next!=Null&&pb->next!=Null) if(pa->data,pb->data) {rc->=pa;rc=pa;pa=pa->next;} eles if(pa->data>pb->data) {rc->next=pb;rc=pb;pb=pb->next;} eles{rc->next=pa;rc=pa;pa=pa->next; rc->next=pb;rc=pb;pb=pb->next;} if(pb->next=Null) {rc->next=pa;pa->=Null;} else{rc->=pb;pb->=Null;} return 0; }
...全文
268 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fvshshhs 2019-10-14
  • 打赏
  • 举报
回复
求教求教,,,,,,,
fvshshhs 2019-10-11
  • 打赏
  • 举报
回复
还是不太懂,什么叫越界啊
赵4老师 2019-10-10
  • 打赏
  • 举报
回复
仅供参考: 数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633 代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
zhagoodwell 2019-10-10
  • 打赏
  • 举报
回复
引用 2 楼 赤马零伊 的回复:
LB *HB(LB *A,LB *B)
{
	LB *pa=A,*pb=B,*pre=NULL,*C,*q; //pa 和pb 分别指向A,B 的当前元素
	while(pb||pa)   //pa pb 不都到结尾时
	{
		if(pb&&pa&&pa->data<pb->data||!pb)//当pa  pb 都没到头且pa->data<pb->data  或者 pb到头时
		{               //将A 的元素插入新表
			C=pa;       //C指向当前节点
			q=pa->Q;    //q保存当前节点的下一节点
			pa->Q=pre;    //pa的下一个节点指向pre
			pa=q;          //pa更新到下一节点
		}
		else         //将B 的元素插入新表
		{
			C=pb;
			q=pb->Q;
			pb->Q=pre;
			pb=q;             
		}
	   pre=C;    //pre保存最新节点
	}
	return C; 
}
链表合并的代码 要注意的就是 越界~ 这个代码没问题 你可以看看 这个博客: https://blog.csdn.net/zhagoodwell/article/details/59230474
zhagoodwell 2019-10-10
  • 打赏
  • 举报
回复
LB *HB(LB *A,LB *B)
{
	LB *pa=A,*pb=B,*pre=NULL,*C,*q; //pa 和pb 分别指向A,B 的当前元素
	while(pb||pa)   //pa pb 不都到结尾时
	{
		if(pb&&pa&&pa->data<pb->data||!pb)//当pa  pb 都没到头且pa->data<pb->data  或者 pb到头时
		{               //将A 的元素插入新表
			C=pa;       //C指向当前节点
			q=pa->Q;    //q保存当前节点的下一节点
			pa->Q=pre;    //pa的下一个节点指向pre
			pa=q;          //pa更新到下一节点
		}
		else         //将B 的元素插入新表
		{
			C=pb;
			q=pb->Q;
			pb->Q=pre;
			pb=q;             
		}
	   pre=C;    //pre保存最新节点
	}
	return C; 
}
fvshshhs 2019-10-10
  • 打赏
  • 举报
回复
哪个大佬可以指出错啊

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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