| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
RT,第58课离奇失踪了  是没有么还是我下载的课件不全啊   
 
 
 
 
附上链表作业 
- #include<stdio.h>
 
 - #include<malloc.h>
 
 - #define LEN sizeof(struct student)
 
  
- struct student *creat();
 
 - void print(struct student *);
 
 - struct student *dele(struct student *, int);
 
 - struct student *add(struct student *);
 
  
- struct student
 
 - {
 
 -         int num;
 
 -         float score;
 
 -         struct student *next;
 
 - };
 
 - int n = 0;
 
  
- void main()
 
 - {
 
 -         int m;
 
 -         struct student *p = creat();
 
 -         printf("\nstudent is num = %d\n\n", n);
 
 -         print(p);
 
 -         printf("\nplease delete num: ");
 
 -         scanf("%d", &m);
 
 -         p = dele(p, m);
 
 -         printf("\nstudent is num = %d\n\n", n);
 
 -         print(p);
 
 -         p = add(p);
 
 -         printf("student is num = %d\n\n", n);
 
 -         print(p);
 
 - }
 
  
- struct student *creat()
 
 - {
 
 -         struct student *p1, *p2, *head;
 
 -         char ch;
 
 -         int num = 0;
 
 -         p1 = p2 = (struct student *)malloc(LEN);
 
 -         printf("please input num: ");
 
 -         scanf("%d", &p1->num);
 
  
- #if 0
 
 -         while((ch = getchar()) != '\n')
 
 -         {
 
 -                 if(ch >='0' && ch<='9')
 
 -                 {
 
 -                         num = num * 10 + (ch - '0');
 
 -                 }
 
 -         }
 
 -         p1->num = num;
 
 - #endif
 
  
-         printf("please input score: ");
 
 -         scanf("%f", &p1->score);
 
  
-         head = NULL;
 
 -         while(p1->num)
 
 -         {
 
 -                 n++;
 
 -                 if(n == 1)
 
 -                 {
 
 -                         head = p1;
 
 -                 }
 
 -                 else
 
 -                 {
 
 -                         p2->next = p1;
 
 -                 }
 
 -                 p2 = p1;
 
 -                 p1 = (struct student *)malloc(LEN);
 
  
-                 printf("\nplease input num: ");
 
 -                 scanf("%d", &p1->num);
 
 -                 printf("please input score: ");
 
 -                 scanf("%f", &p1->score);
 
 -         }
 
 -         free(p1);
 
 -         p2->next = NULL;
 
 -         return head;
 
 - }
 
  
- void print(struct student *p)
 
 - {
 
 -         do
 
 -         {
 
 -                 printf("\ttnum = %d\t\tscore = %.2f\n", p->num, p->score);
 
 -                 p = p->next;
 
 -         }while(p);
 
 - }
 
  
- struct student *dele(struct student *head, int m)
 
 - {
 
 -         struct student *p1, *p2;
 
 -         if(!head)
 
 -         {
 
 -                 printf("\nThis list is null!\n");
 
 -                 goto END;
 
 -         }
 
 -         p1 = head;
 
 -         while(p1->num != m && p1->next != NULL)
 
 -         {
 
 -                 p2 = p1;
 
 -                 p1 = p1->next;
 
 -         }
 
 -         if(m == p1->num)
 
 -         {
 
 -                 if(p1 == head)
 
 -                 {
 
 -                         head = p1->next;
 
 -                 }
 
 -                 else
 
 -                 {
 
 -                         p2->next = p1->next;
 
 -                         free(p1);
 
 -                 }
 
 -                 printf("\nDelete No: %d succeed!\n", m);
 
 -                 n--;
 
 -         }
 
 -         else
 
 -         {
 
 -                 printf("%d not been found!\n", m);
 
 -         }
 
 - END:
 
 -         return head;
 
 - }
 
  
- struct student *add(struct student *p)
 
 - {
 
 -         struct student *pn, *head = p, *p1;
 
 -         pn = (struct student *)malloc(LEN);
 
 -         printf("\nplease input add num: ");
 
 -         scanf("%d", &pn->num);
 
 -         printf("please input add score: ");
 
 -         scanf("%f", &pn->score);
 
 -         if(!p)
 
 -         {
 
 -                 p = pn;
 
 -                 pn->next = NULL;
 
 -         }
 
 -         else
 
 -         {
 
 -                 while(pn->num > p->num && p->next)
 
 -                 {
 
 -                         p1 = p;
 
 -                         p = p->next;
 
 -                 }
 
 -                 if(pn->num <= p->num)
 
 -                 {
 
 -                         if(head == p)
 
 -                         {
 
 -                                 head = pn;
 
 -                         }
 
 -                         else
 
 -                         {
 
 -                                 p1->next = pn;
 
 -                         }
 
 -                         pn->next = p;
 
 -                 }
 
 -                 else
 
 -                 {
 
 -                         p->next = pn;
 
 -                         pn->next = NULL;
 
 -                 }
 
 -         }
 
 -         n++;
 
 -         return head;
 
 - }
 
  复制代码 
好像确实没有 
 
 
 
 
 |   
 
 
 
 |