2008
10-04

运行错误,麻烦高手看一下哦     指点我一下 


#include “stdio.h”
#include “conio.h”
typedef struct node
{
   int data;
   struct node *next;
}node,*linklist;
void initlist(linklist *l)
{
 *l=(linklist)malloc(sizeof(node));
  (*l)->next=0;
}
int createfromhead(linklist l,int a[])
 {
 node *s,*p;
 int i,flag=1;
  p=l;
 while(flag)
  {
   for(i=0;i<10;i++)
   {
   if(a[i]!=’$')
 {
 s= (node *)malloc(sizeof(node));
 s->data=a[i];
 s->next= p->next;
  p->next=s;
 }
 else
 flag=0;  return 0;
  }
 }
}
int inlist(linklist l,int i,int e)
{ node *p,*s;
  int k,n;
  if(i<1)
  printf(“插入位置不合理” ); return 0;


  p=l;k=0;
  while(p->next!=0&&k<i-1)
   {
    p=p->next;
    k=k+1;
    }
  if(!p)
  {
  printf(“插入位置不合理” ); return 0;


  }
 s= (node *)malloc(sizeof(node));
   s->data=e;
   s->next= p->next;
  p->next=s;
  printf(“cha ru e hou de biao :” );
   for(n=0;n<11;n++)
  printf(“%d “,p[n]);
   return 1;
  }
int dellist(linklist l,int i,int *e)
{ node *p,*s;
  int k,n;
  if(i<1) printf(“删除位置不合理” ); return 0;


  p=l;k=0;
  while(p!=0&&k<i-1)
   {
    p=p->next;
    k=k+1;
   }
  if(!(p->next))
  {
  printf(“删除位置不合理” ); return 0;


  }
  s= p->next;
  p->next= p->next->next;
  e=s->data;
  free(s);
 printf(“shan chu wei zhi i hou de biao :” );
   for(n=0;n<9;n++)
  printf(“%d “,p[n]);
  return 1;
  }
linklist mergelinklist(linklist la,linklist lb)
{
node *pa, *pb,*r;
linklist lc;
pa=la->next;
pb=lb->next;
 lc=la;
lc->next=0;
r=lc;
while(pa!=0&&pb!=0)
 {
 if(pa->data<=pb->data)
 {r->next=pa;r=pa;pa=pa->next;}
 else
 {r->next=pb;r=pb;pb=pb->next;}
 }
if(pa)
 r->next=pa ;
 else
r->next=pb ;
free(lb);
return(lc);
}
main()
{   int a[10],n,i,e,*p;
     linklist la,lb,lc,l;
    node *q;
    printf(“input the numbers of 10 and with the end of $:\n”);
    for(i=0;i<10;i++)
{
 scanf(“%d”,&a[i]);


 }
initlist(&l);


 createfromhead (l,a) ;
 printf(“输入你要在第几个位置插入的什么数字\n”);
  scanf(“%d %d”,&i,&e);
   printf( “插入后的表:”);
 inlist( l, i, e);
   printf(“输入你要删除的第几个位置:\n”);
   scanf(“%d”,&i);
 printf(“删除后的表:\n”);
 dellist( l, i, &p);
  printf(“输入要合并的表一:\n”);
   for(i=0;i<10;i++)
{
 scanf(“%d”,a[i]);


 }
 createfromhead( la,a);
    printf(“输入要合并的表二:\n”);
 for(i=0;i<10;i++)
{
 scanf(“%d”,a[i]);


 }
 createfromhead( lb,a);


q=mergelinklist( la, lb);
   printf(“表a和b合并后的表c:\n”);
  for(i=0;i<20;i++)
   printf(“%d”,q[i]);
 }


留下一个回复