藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


c語言中的關於鏈表的程序有問題幫忙

c語言的關於鏈表的程序有問題幫忙,老是編譯不成功
#include<stdio.h>;
#include<string.h>;
#include<math.h>;
#include<ctype.h>;
#define NULL 0
#define LEN sizeof(struct student)
struct student
{long num;
  float score;
  struct student *next;
  };
  int n;
  struct student *creat()
   {{struct student *head;
    struct student *p1,*p2;
    n=0;
    p1=p2=(struct student *)malloc(LEN);
    scanf("%ld,%f",&p1->;num,&p1->;score);
    head=NULL;
    while (p1->;num!=0)
     {n=n+1;
      if(n==1)head=p1;
      else p2->;next=p1;
      p2=p1;
      p1=(struct student *)malloc(LEN);
      scanf("%ld,%f",&p1->;num,&p1->;score);
      }
      p2->;next=NULL;
      return(head);}
/*   out    */
void print(head)
   struct student *head;
   {struct student *p ;
    printf("\n Now, these %d records are:\n",n);
    p=head;
    if(head!=NULL)
     do
     {printf("%d %5.1f\n",p->;num,p->;score);
     p=p->;next;
     }while (p!=NULL);
     }
  /*   del  */
struct student *del(head,num)
  struct student *head;
  long num;
  {{struct student *p1,*p2;
   if(head==NULL){printf("\nlist null!\n");goto end;}
   p1=head;
   while(num!=p1->;num&&p1->;next!=NULL)
   {p2=p1;p1=p1->;next;}
    if(num==p1->;next)
    {if(p1==head)head=p1->;next;
      else p2->;next=p1->;next;
       printf("delete:%ld\n",num);
       n=n-1;
       }
     else
     printf("%ld not been found!\n",num);
      end
    return(head);
}}
/*   insert  */
struct student *insert (head,stud)
struct student *head,*stud;
  {{struct student *p0,*p1,*p2;
    p1=head;
    p0=stud;
    if(head==NULL)
     {head=p0;p0->;next=NULL;}
    else
       {while ((p0->;num>;p1->;num)&&(p1->;next!=NULL))
       {p2=p1;p1=p1->;next;}}
       if(p0->;num<=p1->;num)
       {if(head==p1)head=p0;
      else{p2->;next=p0;
           p0->;next=p1;}
       else
       {p1->;next=p0;p0->;next=NULL;}}
    n=n+1;
    return(head);
   } }
main()
{struct student *head,stu;
  long del-num;
    printf("input records:\n");
  head=creat();
     print(head);
     printf("\ninput the deleted number:");
      scanf("%ld",&del_num);
  head=del(head,del_num);
     print(head);
     printf("\ninput the inserted record:");
      scanf(:"%ld,%f",&stu.num,&stu.score);
  head=insert(head,&stu);
     print(head);
  }

c語言中的關於鏈表的程序有問題幫忙

老大,不是不想幫你,你這code看著頭暈,排版就不要說了,這錯誤也太多了吧,你幹嘛要自己定義NULL,幹嘛要用老式的function定義,就算改了暫時compile過了,core dumped也不會少,呵呵。網上有很多的linked list的例子,你去找來參考參考吧。
先給你一個:    http://www.baek.com.hk/baek/showroom/linklist.htm



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com