zoukankan      html  css  js  c++  java
  • 厦门大学数据结构期末考试单链表问题

    因为过几天要去参加厦门大学的夏令营,提前刷了下厦门大学往年的期末考试试卷。

    卷中有这么一道题目:

    有一个单链表,其结点的元素值以递增顺序排列,给出数据结构,并编写一个算法删除该单链表中元素值相同的结点。

    算法如下:

    从头到尾扫描单链表,若当前结点和后继结点的值不相同,则指针后移,若相同,则删除该后继结点。

     1 #include "stdio.h"
     2 
     3 typedef struct Node{
     4     int data;
     5     struct Node *next;
     6 }Node, *LinkList;
     7 
     8 void InitList(LinkList *L)
     9 {
    10     (*L) = (LinkList)malloc(sizeof(Node));
    11     (*L)->next = NULL;
    12 }
    13 
    14 void creat(LinkList p)
    15 {
    16     Node *s;
    17     int flag = 1, num;
    18     while(flag)
    19     {
    20         scanf("%d", &num);
    21         if(num >= 0)
    22         {
    23             s = (LinkList)malloc(sizeof(Node));
    24             s->data = num;
    25             s->next = p->next;
    26             p->next = s;
    27         }
    28         else
    29         {
    30             flag = 0;
    31         }
    32     }
    33 }
    34 
    35 void print(LinkList p)
    36 {
    37     Node *s = p->next;
    38     if(s == NULL)
    39         printf("NULL
    ");
    40     while(s != NULL)
    41     {
    42         printf("%d ", s->data);
    43         s = s->next;
    44     }
    45     printf("
    ");
    46 }
    47 
    48 void deleta_same(LinkList p)
    49 {
    50     Node *q, *s = p->next;
    51     if(s == NULL)
    52         printf("NULL
    ");
    53     while(s->next != NULL)
    54     {
    55         if(s->data != s->next->data)
    56             s = s->next;
    57         else
    58         {
    59             q = s->next;
    60             s->next = q->next;
    61             free(q);
    62         }
    63     }
    64 }
    65 
    66 int main()
    67 {
    68     Node *p;
    69     InitList(&p);
    70     creat(p);
    71     print(p);
    72     deleta_same(p);
    73     print(p);
    74 }
  • 相关阅读:
    音律入门
    [转]MIDI常识20条
    Java使用代理服务器
    java8日期时间
    误删课表系统
    Uncaught Error: Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)
    SpringBoot应用部署[转]
    如何学习新技术
    Maven使用archetype迅速生成项目骨架
    两个月打工总结
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/7151340.html
Copyright © 2011-2022 走看看