合并两个链表数据结构c语言,合并两个链表.
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
#include?
#define?N1?10
#define?N2?10
struct?list{
int?date?;
struct?list?*next;
};
main()
{
struct?list?*p1,*p2,*p3,*p4,*head,*head1,*head2,*p;
int?n=0;
head1=head2=NULL;
p1=p2=(struct?list?*)malloc(sizeof(struct?list));
p1->date=n;
while(n
{
n++;?if?(n==1)?head1=p1;
p2->next=p1;?p2=p1;
p1=(struct?list?*)malloc(sizeof(struct?list));
p1->date=n;
}
p2->next=NULL;
p1=p2=(struct?list?*)malloc(sizeof(struct?list));
p1->date=n;
while(n
{
n++;?if?(n==N1+1)?head2=p1;
p2->next=p1;?p2=p1;
p1=(struct?list?*)malloc(sizeof(struct?list));
p1->date=n;
}
p2->next=NULL;
p=head1;
do
{
printf("%3d",p->date);
p=p->next;
}?while(p->next!=NULL);
printf("%3d",p->date);
printf("\n");
p=head2;
do
{
printf("%3d",p->date);
p=p->next;
}?while(p->next!=NULL);
printf("%3d",p->date);
printf("\n");
getch();
p1=head1;
p2=head2;
head=head1;
while?(p1->next!=NULL?&&?p2->next!=NULL)
{
p3=p1->next;
p4=p2->next;
p1->next=p2;
p2->next=p3;
p1=p3;p2=p4;
}
if?(p1->next==NULL?&&?p2->next==NULL)?{p1->next=p2;?p2->next==NULL;}
else?if?(p1->next==NULL?&&?p2->next!=NULL)?p1->next=p2;
else?if?(p2->next==NULL?&&?p1->next!=NULL)?{p3=p1->next;p1->next=p2;p2->next=p3;}
p=head;
do
{
printf("%3d",p->date);
p=p->next;
}?while(p->next!=NULL);
printf("%3d",p->date);
getch();
}
總結(jié)
以上是生活随笔為你收集整理的合并两个链表数据结构c语言,合并两个链表.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java编程求最小公约数_java求最大
- 下一篇: 微商相册一直显示服务器偷懒,【小程序】微