关闭

数据结构上机测试2-1:单链表操作A

95人阅读 评论(0) 收藏 举报

数据结构上机测试2-1:单链表操作A

Time Limit: 1000ms   Memory limit: 4096K  有疑问?点这里^_^

题目描述

输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。分别输出建立的初始单链表和完成删除后的单链表。

输入

第一行输入数据个数n;
第二行依次输入n个整数;
第三行输入欲删除数据m。

输出

第一行输出原始单链表的长度;
第二行依次输出原始单链表的数据;
第三行输出完成删除后的单链表长度;
第四行依次输出完成删除后的单链表数据。

示例输入

10
56 25 12 33 66 54 7 12 33 12
12

示例输出

10
56 25 12 33 66 54 7 12 33 12
7
56 25 33 66 54 7 33

  1. #include <stdio.h>  
  2. #include <malloc.h>  
  3. struct node  
  4. {  
  5.     int date;  
  6.     struct node * next;  
  7. };  
  8. struct node * creat(int n)  
  9. {  
  10.     struct node * head,* tail,*p;  
  11.     int i;  
  12.     head=(struct node *)malloc(sizeof(struct node));  
  13.     head->next=NULL;  
  14.     tail=head;  
  15.     for(i=1;i<=n;i++)  
  16.     {  
  17.         p=(struct node *)malloc(sizeof(struct node ));  
  18.         scanf("%d",&p->date);  
  19.         p->next=NULL;  
  20.         tail->next=p;  
  21.         tail=p;  
  22.     }  
  23.     return (head);  
  24. }  
  25. void del(struct node * head,int n,int m)  
  26. {  
  27.     struct node * p, * q;  
  28.     int flag=0;  
  29.     p=head;  
  30.     while(p->next!=NULL)  
  31.     {  
  32.         if(p->next->date==m)  
  33.         {  
  34.             n=n-1;  
  35.             q=p->next;  
  36.             p->next=q->next;  
  37.             free(q);  
  38.         }  
  39.         else p=p->next;  
  40.     }  
  41.     printf("%d\n",n);  
  42. }  
  43. void Dis_list(struct node *l)  
  44. {  
  45.     struct node  *r;  
  46.     r=l;  
  47.     while(r->next->next!=NULL)  
  48.     {  
  49.         printf("%d ",r->next->date);  
  50.         r=r->next;  
  51.     }  
  52.     printf("%d\n",r->next->date);  
  53. }  
  54. int main(int argc,char** argv)  
  55. {  
  56.     int n,m;  
  57.     struct node *head;  
  58.     scanf("%d\n",&n);      
  59.     head=creat(n);  
  60.     scanf("%d",&m);  
  61.     printf("%d\n",n);  
  62.     Dis_list(head);  
  63.     del(head,n,m);  
  64.     Dis_list(head);  
  65.     return 0;  
  66. }  
  67.    






0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3378次
    • 积分:343
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条