• 第三组两个有序表合并


    #include<stdio.h>
    #include<stdlib.h>

    typedef struct List
    {
     int data;
     struct List *next;
    } List;

    List *createlist();
    void printflist(List *pre);
    List *sort(List *head);
    List *add(List *L1,List *L2);

    int main()
    {
       List *L1,*L2,*L3,*L;
       L1=createlist();
       L2=createlist();
       L3=add(L1,L2);
       L=sort(L3);
       printflist(L) ;
    }

    List *createlist()
    {
     List *L,*p,*q;
        L=(List*)malloc(sizeof(List*));
        L->next=NULL;
     p=L;
        int m;
     scanf("%d",&m);
     if(m!=-1)
     {
      L->data=m;
      p=L;
     } 
     else
         return 0;
         scanf("%d",&m);
     while(m!=-1)
     {
      q=(List*)malloc(sizeof(List*));
      q->data=m;
      p->next=q;
      p=q;
      scanf("%d",&m);
     }
     p->next=NULL;
     return L;
    }

    List *add(List *L1,List *L2)
    {
     List *p,*q,*pre,*r;
     p=L1->next;
     pre=L1;
     q=L2;
     r=pre;
     while(p!=NULL)
     {
        pre->next=p;
        pre=pre->next;
        p=p->next; 
        }
        while(q!=NULL)
        {
         pre->next=q;
         pre=pre->next;
         q=q->next;
        }
        pre->next=NULL;
        return r;
    }

    void printflist(List *L)
    {
     while(L)
     {
      if(L->next!=NULL)
      {
         printf("%d ",L->data);
         }
         else
            printf("%d",L->data);
         L=L->next;
     }
    }

    List *sort(List *head)
    {
     List *p,*pre,*q;
     p=head->next->next;
     head->next->next=NULL;
     while(p!=NULL)
     {
      q=p->next;
      pre=head;
      while(pre->next!=NULL&&pre->next->data<p->data)
         pre=pre->next;
      p->next=pre->next;
      pre->next=p;
      p=q;  
     }
     return head;
    }

    这又合并两条单链表并排序的题目呢,在PTA上未能实现满分。

    主要有一下几点错误;

    1.当输入第一条链表的第一个数字为-1时,程序就无法运行。

    2.组员对指针的移动掌握不熟悉,常常使指针指向错误。

    3.部分组员的printList函数出错,主要是对题目没有认真审题,对题目要求的末尾无空格没有特殊处理。

    4.对于结构体,结构体函数和typedef的运用不熟悉。

    5.对链表指针与指向指针的指针概念混淆。

    未解决错误的第一点。

    希望老师能对链表指针与指向指针的指针给我们做个辨析。

  • 相关阅读:
    锋利的Jquery 读书有感(三)
    锋利的Jquery 读书有感(二)
    锋利的Jquery 读书有感
    读head first servlet and jsp有感(3)(转)
    读head first servlet and jsp有感(2)(转)
    读head first servlet and jsp有感(1)(转)
    JSTL标签与EL表达式之间的微妙关系
    JDBC学习
    Mysql学习(二)
    JAVA相关问题整理(四)
  • 原文地址:https://www.cnblogs.com/hamawep789/p/6542336.html
Copyright © 2020-2023  润新知