线性表的排序合并
#include <stdio.h>#include <malloc.h>#define NULL 0#define LEN sizeof(struct number)struct number //构造函数是链表输入{ int num; struct number *next;};int n;struct number *creat(){ struct number *head; struct number *p1; n=0; p1=(struct number * )malloc(LEN); scanf("%d",p1->num); head=NULL; while(p1->num!=0) { n=n+1; if(n==1) head=p1; else p1->next=p1; p1=(struct number * )malloc(LEN); scanf("%d",&p1->num); } p1->next=NULL; free(p1); return(head);}struct number *insert(struct number *n1, struct number *n2) //合并两个链表{ struct number *p,*head; if(n1->num<n2->num) { head=p=n1; n1=n1->next; } else { head=p=n2; n2=n2->next; } while(n1!=NULL&&n2!=NULL) if(n1->num<n2->num) { p->next=n1; p=n1; n1=n1->next; } else { p->next=n2; p=n2; n2=n2->next; } if(p!=NULL) p->next=n1; else p->next=n2; return head;}void print(struct number *head) //使链表逆序输出{ struct number *p; p=head; while(p) { printf("%d",p->num); p=p->next; }}void main(){ struct number*head,*num,*head1,*head2; int a1,a2; printf("Please input first link information:尀n"); head1=creat(a1); printf("尀nPlease input second link information:尀n"); head2=creat(a2); head=insert(a1,a2); print(head);} 为什么编译时会出现D:尀UserData尀Administrator尀桌面尀链表.cpp(81) : error C2660: ✀creat✀ : function does not take 1 parametersD:尀UserData尀Administrator尀桌面尀链表.cpp(83) : error C2660: ✀creat✀ : function does not take 1 parametersD:尀UserData尀Administrator尀桌面尀链表.cpp(84) : error C2664: ✀insert✀ : cannot convert parameter 1 from ✀int✀ to ✀struct number *✀ Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast执行 cl.exe 时出错.