把两个链表合成一个链表的问题,高手帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/09/28 15:04:37
这个程序是把两个链表lista,listb,合成一个链表,然后输出。编译没有问题。但是结果不是我想要的,顺便请高手能不能改简单一点的
#include<stdio.h>
#include<malloc.h>
#define STU struct student
#define NULL0
#define LEN sizeof(struct student)
int n,sum=0;
STU
{
int num;
int score;
STU *next;
}lista,listb;
/*建立链表*/
STU *creat(void)
{
STU *head,*p1,*p2;
n=0;
p1=p2=(STU*) malloc(LEN);
scanf("%d,%d",&p1->num,&p1->score);
head=NULL;
while(p1->num!=NULL)
{
n++;
if(n==1)
head=p1;
else p2->next=p1;
p2=p1;
p1=(STU*) malloc(LEN);
scanf("%d,%d",&p1->num,&p1->score);
}
p2->next=NULL;
return(head);
}
/*合并两个链表*/
STU *insert(STU *ah,STU *bh)
{
STU *p1a,*p2a,*p1b,*p2b;
p1a=p2a=ah;
p1b=p2b=bh;
do
{
while(p1b->n

lista,listb是两个链表

你只需要lista和listb首尾相连么?

直接把listb连接到lista后面就可以了

用一个指针p指向lista,然后while(p->next!=NULL){ p=p->next; }

找到lista的最后一个结点,接着,p->next=ooxx;

即把listb连到后面

此时lista就是两个连起来的效果

问题描述不是很清楚

不知道你要什么样的效果。。。