顺序表应用2:多余元素删除之建表算法
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
Output
6 9 8
5
9 8 7 6 5
1 2 3 4 5
Hint

//哈哈,把这道题吃透后,AC真的是好快乐。

#include<stdio.h>
#include<stdlib.h>
struct node
{int data[10006];int last;
};
struct node *createdel(struct node *head)
{int i, j;scanf("%d", &head->data[0]);for(i = 1; i < head->last; i++){scanf("%d", &head->data[i]);for(j = 0; j < i; j++){if(head->data[i] == head->data[j]){i--;//这个地方最开始我一直不理解,掉入了死活同,这个 i--;就是对于接下来输入的数据覆盖掉原来的素具,进而实现伪”删除“;head->last = head->last - 1;//删除了,同时长度也要减少}}}return head;
}
void display(struct node *head)
{int i;for(i = 0; i < head->last - 1; i++){printf("%d ", head->data[i]);}printf("%d\n",head->data[i]);
}
int main()
{int n;struct node *head;scanf("%d", &n);while(n--){head = (struct node *)malloc(sizeof(struct node));scanf("%d", &head->last);head = createdel(head);display(head);}return 0;
}

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

  1. 顺序表应用2:多余元素删除之建表算法(SDUT 3325)

    题解: 每次询问一遍,如果已经存在就不用插入表中了. #include <stdio.h> #include <stdlib.h> #include <string.h& ...

  2. 顺序表应用1:多余元素删除之移位算法

    Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据元素从顺序表中删 ...

  3. A - 顺序表应用1:多余元素删除之移位算法

    Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据元素从顺序表中删 ...

  4. 顺序表应用3:元素位置互换之移位算法

    Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m< ...

  5. 单链表的初始化,整表创建,单个元素插入,单个元素删除,整表删除等操作...

    很早之前学的数据结构,放了很久后,以致对里面的一些操作都有些遗忘,故而再次温习了一下数据结构,并整理了一点儿笔记,放在这里和大家分享, 我的代码注释的已经很详细了,对于容易出错的地方我也都有标注,欢迎 ...

  6. excel 透视表 vba_使用Excel VBA删除数据透视表计算字段

    excel 透视表 vba Yesterday, I started out with the best of intentions, planning to get some work done, ...

  7. 只知道删除单张表的数据?不知道删除多张表的数据?

    一些废话 可能在某某一天,你在删除表的数据的时候,不想一张表一张表的去删除,想把两个表的数据同时删除:然后你就会去搜索,然后你就很有很有很有很有可能会看到 me 的这篇优质(呸!!!)文章了~ 嗯,没 ...

  8. mysql删除表中所有数据_MySQL删除或清空表中数据的方法

    原标题:MySQL删除或清空表中数据的方法 要想把MySQL中的数据删除或清空,可以通过两种方法来实现:DELETE语句和TRUNCATE TABLE语句. DELETE语句可以将表中所有记录都删除, ...

  9. MySQL之数据表(数据库的创建与删除、数据表的创建与删除)

    MySQL之数据表 创建数据库 删除数据库 认识数据表 创建数据表 删除数据表 创建数据库   在创建表之前,一定要先创建用来存储表的数据库.数据库中包含数据表.视图.索引.查询.规则.默认值等数据库 ...

最新文章

  1. 遍历系统的所有ObjectType和TypeIndex
  2. Mac10.9 Mavericks 输入法切换快捷键
  3. 五大特点_探究干细胞五大特点:(五)不成瘤
  4. 虚拟机(VMware Workstation)中,把连接网络的模式由“NAT模式”,改成“自动桥接模式”,网速大大的提升...
  5. 基于TableStore的亿级订单管理解决方案
  6. vsftpd 源码安装 linux/redhat
  7. java C# objective-c AES对称加解密
  8. 使用Visual Studio比较两个数据库、查找差异和更新
  9. 01.学习笔记-linux操作系统常用命令
  10. MySQL字符集设置及字符转换(latin1转utf8)
  11. oracle sql 取最大分组,oracle sql 按某个字段分组然后从每组取出最大的一条纪录...
  12. 计算机音乐桃源恋歌,GARNiDELiA《桃源恋歌》[FLAC/MP3-320K]
  13. PHP加载lod,面向大场景模型web端动态渲染LOD处理方法与流程
  14. Firefox流失近5000万用户,世界第三大浏览器正在消亡
  15. 【JVM基础】垃圾回收算法详解(引用计数、标记、清除、压缩、复制)
  16. 合肥工业大学计算机与信息学院学生会宗旨,合肥工业大学宣城校区第一届学生会成立大会召开...
  17. 矩阵特征值和特征向量求解——特征值分解
  18. 一边攒大米,一边做公益
  19. 【JavaScript】用字符串进行for循环
  20. RabbitMQ在Linux服务器上安装并远程控制

热门文章

  1. Python编程基础:第五节 用户输入User Input
  2. 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分
  3. 【android-tips】adb 常用命令汇总(持续更新中)
  4. 几张图帮你理解 docker 基本原理及快速入门
  5. 开源APM技术选型与实战
  6. 使用solr的DIHandler 构建mysql大表全量索引,内存溢出问题的解决方法
  7. spring源码分析之spring-web http详解
  8. 百分点认知智能实验室:NLP模型开发平台在舆情分析中的设计和实践(下)
  9. 研究38位知名CEO的邮件后,我们有这9个发现
  10. 一图看尽全生态, 2018区块链产业云图重磅发布