C语言版数据结构链表合并问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 18:19:19
两个实例化的链表La,Lb, 合并成一个有序链表存入La,要求元素有序且不重复。完整函数。

#include<stdio.h>
#include<stdlib.h>
typedef char datatype;
typedef struct node
{
datatype data;
struct node *next;
}listnode;
typedef listnode *linklist;
void main()
{
linklist creatlist();
void printlist(linklist);
linklist listadd(linklist,linklist);
linklist la=creatlist();
linklist lb=creatlist();
//printlist(la);
//printlist(lb);
linklist lc=listadd(la,lb);
printlist(lc);
}
linklist creatlist()//创建单链表
{
char ch;
linklist head=(linklist)malloc(sizeof(listnode));
linklist p,q;
q=head;
while((ch=getchar())!='\n')
{
p=(linklist)malloc(sizeof(listnode));
p->data=ch;
q->next=p;
q=p;
}
q->next=NULL;
return head;
}
void printlist(linklist head)//输出单链表
{
linklist p;
for(p=head->next;p;p=p->next)
printf(