顺序表应用2:多余元素删除之建表算法

2023-05-16

顺序表应用2:多余元素删除之建表算法

Time Limit: 3 ms Memory Limit: 600 KiB

Submit Statistic

Problem Description

一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。
要求:
       1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;
       2、本题的目标是熟悉在顺序表原表空间基础上建新表的算法,要在原顺序表空间的基础上完成完成删除,建表过程不得开辟新的表空间;
       3、不得采用原表元素移位删除的方式。

Input

 第一行输入整数n,代表下面有n行输入;
之后输入n行,每行先输入整数m,之后输入m个数据,代表对应顺序表的每个元素。

Output

  输出有n行,为每个顺序表删除多余元素后的结果

Sample Input


4
5 6 9 6 8 9
3 5 5 5
5 9 8 7 6 5
10 1 2 3 4 5 5 4 2 1 3  

Sample Output


6 9 8
5
9 8 7 6 5
1 2 3 4 5  

Hint

 

Source

 

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

struct node
{
    int data;
    struct node *next;
};

struct node creat_list(int n)
{
    struct node *head, *p, *q;
    head = (struct node *)malloc(sizeof(struct node ));
    head ->next = NULL;
    p = head;
    int i;
    for (i = 0 ; i < n ; i++)
    {
        q = (struct node *)malloc(sizeof(struct node ));
        scanf("%d", &q->data);
        p ->next = q;
        q ->next = NULL;
        p = q;
    }
    return *head;
}

void dele(struct node *head)
{
    struct node *p, *q, *x;
    p = head ->next;

    while(p ->next != NULL)
    {
        x = p;
        q =  p->next;
        while(q != NULL)
        {
            if (q ->data == p ->data && q ->next != NULL)
            {
                x ->next = q ->next;
                free(q);
                q = x ->next;
            }
            else if (q ->data == p ->data && q ->next == NULL)
            {
                x ->next = NULL;
                q = NULL;
            }
            else
            {
                x = q;
                q = q ->next;
            }

        }
        if (p ->next != NULL)
        p = p->next;
    }
}


int main()
{
    int n, m  ;
    struct node *head1;

    scanf("%d", &m);
    while(m--)
    {
        scanf("%d", &n);
        head1 = (struct node *)malloc(sizeof(struct node)) ;
        *head1 = creat_list(n);
        dele(head1);
        struct node *p;
        p = head1 ->next;
        while(p != NULL)
        {
            if (p ->next != NULL)
            {
                printf("%d ", p->data);
            }
            else
            {
                printf("%d\n", p->data);
            }
            p = p->next;
        }
    }
    return 0;
}
 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

顺序表应用2:多余元素删除之建表算法 的相关文章

  • 猴子分桃

    猴子分桃 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 老猴子辛苦了一辈子 xff0c 给那群小猴子们留下了一笔巨大的财富 一大
  • 骨牌铺方格

    骨牌铺方格 Time Limit 1000 ms Memory Limit 32768 KiB Submit Statistic Problem Description 在2 n的一个长方形方格中 用一个1 2的骨牌铺满方格 输入n 输出铺
  • 三国佚事——巴蜀之危

    三国佚事 巴蜀之危 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 话说天下大势 xff0c 分久必合 xff0c 合久必分 却道
  • 精读《设计模式 - Singleton 单例模式》

    Singleton xff08 单例模式 xff09 Singleton xff08 单例模式 xff09 属于创建型模式 xff0c 提供一种对象获取方式 xff0c 保证在一定范围内是唯一的 意图 xff1a 保证一个类仅有一个实例 x
  • 骨牌铺方格II

    骨牌铺方格II Problem Description 在3 n的一个长方形方格中 用一个1 3的骨牌铺满方格 输入n 输出铺放方案的总数 例如n 61 4时 为3 4方格 xff0c 骨牌的铺放方案有3种 Input 输入数据由多行组成
  • 数据结构实验之排序二:交换排序

    数据结构实验之排序二 xff1a 交换排序 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 冒泡排序和快速排序都是
  • 数据结构上机测试1:顺序表的应用

    这是通过程序设计基础的链表实现顺序表的代码 数据结构上机测试1 xff1a 顺序表的应用 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem
  • 数据结构实验之栈与队列一:进制转换

    数据结构实验之栈与队列一 xff1a 进制转换 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 输入一个十进制非负
  • 数据结构实验之栈与队列四:括号匹配

    数据结构实验之栈与队列四 xff1a 括号匹配 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 给你一串字符 xf
  • 数据结构实验之串二:字符串匹配

    数据结构实验之串二 xff1a 字符串匹配 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 给定两个字符串stri
  • 数据结构实验之排序五:归并求逆序数

    数据结构实验之排序五 xff1a 归并求逆序数 Time Limit 50 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 对于数列a1 a2 a
  • 数据结构实验之栈与队列五:下一较大值(一)

    数据结构实验之栈与队列五 xff1a 下一较大值 xff08 一 xff09 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Descri
  • 数据结构上机实验之顺序查找

    数据结构上机实验之顺序查找 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 在一个的序列里 xff0c 查找元素是
  • 数据结构实验之查找四:二分查找

    数据结构实验之查找四 xff1a 二分查找 Time Limit 30 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 在一个给定的无重复元素的递
  • Java各种加密方式集锦(AES,DES,RSA,DSA,MD5,SHA)

    一 什么是加密 加密 xff0c 是以某种特殊的算法改变原有的信息数据 xff0c 使得未授权的用户即使获得了已加密的信息 xff0c 但因不知解密的方法 xff0c 仍然无法了解信息的内容 在网络数据传输过程中会经常用到报文加密 xff0
  • 数据结构实验之数组二:稀疏矩阵

    数据结构实验之数组二 xff1a 稀疏矩阵 Time Limit 5 ms Memory Limit 1000 KiB Submit Statistic Discuss Problem Description 对于一个n n的稀疏矩阵M 1
  • 数据结构实验之二叉树五:层序遍历

    数据结构实验之二叉树五 xff1a 层序遍历 Statistic Problem Description 已知一个按先序输入的字符序列 xff0c 如abd eg cf 其中 表示空结点 请建立二叉树并求二叉树的层次遍历序列 Input 输
  • 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四 xff1a 有序链表的归并 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 分别输入两个有序的整数序列 xf
  • 数据结构实验之二叉树五:层序遍历

    数据结构实验之二叉树五 xff1a 层序遍历 Time Limit 1000 ms Memory Limit 65536 KiB 其实层序遍历就是一个递归存储的过程 Submit Statistic Problem Description
  • 数据结构实验之二叉树二:遍历二叉树

    数据结构实验之二叉树二 xff1a 遍历二叉树 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知二叉树的一个按先序遍历输入的字

随机推荐

  • 数据结构实验之求二叉树后序遍历和层次遍历

    数据结构实验之求二叉树后序遍历和层次遍历 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知一棵二叉树的前序遍历和中序遍历 xf
  • 数据结构实验之二叉树一:树的同构

    数据结构实验之二叉树一 xff1a 树的同构 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 给定两棵树T1和T2 如果T1可以通
  • 数据结构实验之二叉树八:(中序后序)求二叉树的深度

    数据结构实验之二叉树八 xff1a xff08 中序后序 xff09 求二叉树的深度 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Descriptio
  • 求二叉树的先序遍历

    求二叉树的先序遍历 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知一棵二叉树的中序遍历和后序遍历 xff0c 求二叉树的先序
  • 数据结构上机测试4.1:二叉树的遍历与应用1

    数据结构上机测试4 1 二叉树的遍历与应用1 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 输入二叉树的先序遍历序列和中序遍历序
  • 2、STM32点亮LED灯

    STM32寄存器和库函数点灯 一 寄存器操作1 新建工程 xff0c 新建一个目录存放以后所有的工程stmproject xff0c 在这个目录下新建文件夹寄存器点灯 xff0c 文件名为LED 2 新建文件main c并双击source
  • 数据结构实验之二叉树七:叶子问题

    数据结构实验之二叉树七 xff1a 叶子问题 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 已知一个按先序输入的字符序列 xff
  • 数据结构实验之二叉树的建立与遍历

    数据结构实验之二叉树的建立与遍历 二叉树的基本操作 xff0c 中序遍历 xff0c 后序遍历 xff0c 前序遍历 xff0c 只是根节点输出的位置不同 xff0c 叶子结点 xff0c 深度 xff0c 需要自己理解 xff0c 也非常
  • 哈夫曼树

    什么是哈夫曼树 xff1f 让我们先举一个例子 判定树 xff1a 在很多问题的处理过程中 xff0c 需要进行大量的条件判断 xff0c 这些判断结构的设计直接影响着程序的执行效率 例如 xff0c 编制一个程序 xff0c 将百分制转换
  • 哈夫曼树的概念及其实现

    1 基本概念 a 路径和路径长度 若在一棵树中存在着一个结点序列 k1 xff0c k2 xff0c xff0c kj xff0c 使得 ki是ki 43 1 的双亲 xff08 1 lt 61 i lt j xff09 xff0c 则称此
  • 二叉排序树详解

    二叉排序树的介绍 二叉排序树为一颗二叉树 xff0c 或者为空 xff0c 或者满足如下条件 xff1a 如果它的左子树不为空 xff0c 那么左子树上的所有结点的值均小于它的根结点的值如果它的右子树不为空 xff0c 那么右子树上的左右结
  • 数据结构实验之队列一:排队买饭

    数据结构实验之队列一 排队买饭 这个题猛的一看可能会有点麻烦 xff0c 但是其实一点也不 xff0c 只要把每个情况用if条件语句分清就可以了 有一点栈的思想 Problem Description 中午买饭的人特多 食堂真是太拥挤了 买
  • bLue的文件查找器

    bLue的文件查找器 用结构体数组按顺序存储 xff0c 每次查找的时候只是判断最后的文件格式ex Problem Description bLue 的电脑里存了各种各样的文件 xff0c 随着文件越来越多 xff0c 查找文件也成了一个麻
  • 图的基本存储的基本方式二

    小编在网上看到好多博主的文章这道题都没有用结构体做 xff0c 数据量太大 xff0c 结构体也是一个不错的选择 但是结构体有一个不好的地方 xff0c 不能直接搜索 xff0c 只能每次从头开始搜索 xff0c 有点浪费时间 Proble
  • 图的基本存储的基本方式一

    这个题主要的是这个 stdbool h 这个函数 xff0c 还有bool这个数组 Problem Description 解决图论问题 xff0c 首先就要思考用什么样的方式存储图 但是小鑫却怎么也弄不明白如何存图才能有利于解决问题 你能
  • 图的基本存储的基本方式四

    一直不知道这个题为什么用链表可以A xff0c 但是结构体就会WA xff0c 如果有童鞋们知道 xff0c 希望能留下想法 xff0c 一起学习 xff0c 一起进步 Problem Description 解决图论问题 xff0c 首先
  • C# 超详细的WebService创建、发布与调用(VS2019)

    1 编写接口 这里我选择的是 ASP NET Web应用程序 NET Framework 填写好项目名称 选择项目位置以及所使用的框架 xff0c 这里我用的是 NET Framework 4 框架 xff0c 然后点击创建 继续点击创建
  • 图的基本存储的基本方式三

    图的基本存储的基本方式三 Problem Description 解决图论问题 xff0c 首先就要思考用什么样的方式存储图 但是小鑫却怎么也弄不明白如何存图才能有利于解决问题 你能帮他解决这个问题么 xff1f Input 多组输入 xf
  • 数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九 xff1a 行编辑器 Problem Description 一个简单的行编辑程序的功能是 xff1a 接受用户从终端输入的程序或数据 xff0c 并存入用户的数据区 由于用户在终端上进行输入时 xff0c 不能保
  • 顺序表应用2:多余元素删除之建表算法

    顺序表应用2 xff1a 多余元素删除之建表算法 Time Limit 3 ms Memory Limit 600 KiB Submit Statistic Problem Description 一个长度不超过10000数据的顺序表 xf