zoukankan      html  css  js  c++  java
  • 单链表中重复元素删除

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2122

     1 #include<stdio.h>  
     2 #include<stdlib.h>  
     3 typedef struct node  
     4 {  
     5     int data;  
     6     struct node *next;  
     7 }lb;  
     8 lb *creat(int n)  //建立逆序链表  
     9 {  
    10     int i;  
    11     lb *head,*p;  
    12     head=(lb*)malloc(sizeof(lb));  
    13     head->next=NULL;  
    14     for(i=0;i<n;i++)  
    15     {  
    16         p=(lb*)malloc(sizeof(lb));  
    17         scanf("%d",&p->data);  
    18         p->next=head->next;  
    19         head->next=p;  
    20     }  
    21     printf("%d\n",n);  
    22     return head;  
    23 }  
    24 void list(lb *r)   //输出原表
    25 {  
    26     lb *q;  
    27     q=r;  
    28     while(q->next->next!=NULL)  //输出
    29     {  
    30         printf("%d ",q->next->data);  
    31         q=q->next;  
    32     }  
    33     printf("%d\n",q->next->data);  
    34 }  
    35 void del(lb *head,int n)  //删除相同元素
    36 {  
    37     lb *p,*q1,*q2;  
    38     p = head;  
    39     while(p->next!=NULL)  
    40     {  
    41         q1 = p;  
    42         q2 = p->next;  
    43         while(q2!=NULL)  
    44         {  
    45             if(p->data==q2->data)  
    46             {  
    47                 q1->next=q2->next;  
    48                 q2=q2->next;  
    49                 n--;  
    50             }  
    51             else  
    52             {  
    53                 q1=q1->next;  
    54                 q2=q2->next;  
    55             }  
    56         }  
    57         p=p->next;  
    58     }  
    59     p=head;  
    60     printf("%d\n",n);  
    61     while(p->next->next!=NULL)  //输出
    62     {  
    63         printf("%d ",p->next->data);  
    64         p=p->next;  
    65     }  
    66     printf("%d\n",p->next->data);  
    67 }  
    68 int main()  
    69 {  
    70     lb *head;  
    71     int n;  
    72     scanf("%d",&n);   
    73     head=creat(n);  
    74     list(head);  
    75     del(head,n);  
    76     return 0;  
    77 }  
  • 相关阅读:
    1128项目跟进
    冲刺一 (day 3)
    1118 冲刺1-需求文档(初稿)
    1117 新冲刺 day1
    0622 总结与回顾
    0621 第三次冲刺
    0617 主存空间的分配和回收
    学习进度条
    软件工程学期总结
    学术诚信与职业道德
  • 原文地址:https://www.cnblogs.com/sdutmyj/p/2954606.html
Copyright © 2011-2022 走看看