基础数据结构——顺序表(2)

Time Limit: 1000 MS    Memory Limit: 10240 K

Total Submit: 355(143 users) Total Accepted: 158(130 users)    Rating:         Special Judge: No

Description

在长度为n(n<1000)的顺序表中可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只能有一个)。

Input

第一行输入表的长度n;

第二行依次输入顺序表初始存放的n个元素值。

Output

第一行输出完成多余元素删除以后顺序表的元素个数;

第二行依次输出完成删除后的顺序表元素。

Sample Input

12

5 2 5 3 3 4 2 5 7 5 4 3

Sample Output

5

5 2 3 4 7


  数据结构,顺序表的实现

  顺序表是顺序结构实现的线性表,这道题考察的是顺序表的实现及基本操作。题目不难,是道入门题。

  注意输出格式,最后一个元素后面不能有空格。

  代码

 #include <iostream>
#include <malloc.h>
using namespace std;
#define MAXSIZE 1010
typedef struct { //定义顺序表类型
int data[MAXSIZE];
int length;
}SqList,*LinkSqList;
//顺序表初始化
void Init(SqList* &sq)
{
sq->length = ;
}
//插入
void Insert(SqList* &sq,int i,int x) //在第i位置插入元素值为x的元素
{
if(sq->length>=MAXSIZE){
cout<<"表已满,无法插入!"<<endl;
}
else if(i< || i>sq->length+){
cout<<"插入位置不合理!"<<endl;
}
else{
int j;
for(j=sq->length;j>=i;j--)
sq->data[j+] = sq->data[j];
sq->data[i] = x;
sq->length++;
}
}
//删除
void Delete(SqList* &sq,int i) //删除第i个元素
{
if(sq->length<=)
cout<<"表已空,无法删除!"<<endl;
else if(i< || i>sq->length)
cout<<"删除位置不合理!"<<endl;
else {
int j;
for(j=i+;j<=sq->length;j++)
sq->data[j-] = sq->data[j];
sq->length--;
}
}
//输出顺序表
void Print(SqList* &sq) //输出顺序表中所有元素
{
int i;
for(i=;i<=sq->length;i++){
cout<<sq->data[i];
if(i<sq->length)
cout<<' ';
}
cout<<endl;
}
//销毁顺序表
void Destroy(SqList* &sq) //销毁顺序表
{
free(sq);
}
//去重
void DeleteRepeat(SqList* &sq) //删掉重复元素
{
int i,j;
for(i=;i<=sq->length;i++)
for(j=;j<i;j++)
if(sq->data[j]==sq->data[i]){
Delete(sq,i);
i--;
break;
}
}
int main()
{
int i,n,t;
while(cin>>n){
LinkSqList sq = (SqList*)malloc(sizeof(SqList));
Init(sq);
//输入
for(i=;i<=n;i++){
cin>>t;
Insert(sq,i,t); //插入元素
}
//去重
DeleteRepeat(sq);
//输出
cout<<sq->length<<endl;
Print(sq);
Destroy(sq);
}
return ;
}

Freecode : www.cnblogs.com/yym2013

hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)的更多相关文章

  1. PHP数据结构之二 线性表中的顺序表的PHP实现

    线性表 (一)基本特点:最基本.最简单.最常用的一种数据结构 在这种结构中: 1.存在一个唯一的被称为“第一个”的数据元素: 2.存在一个唯一的被称为“最后一个”的数据元素: 3.除第一个元素外,每个 ...

  2. SDUT OJ 数据结构上机测试1:顺序表的应用

    数据结构上机测试1:顺序表的应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...

  3. [一]class 文件浅析 .class文件格式详解 字段方法属性常量池字段 class文件属性表 数据类型 数据结构

    前言概述  本文旨在讲解class文件的整体结构信息,阅读本文后应该可以完整的了解class文件的格式以及各个部分的逻辑组成含义   class文件包含了java虚拟机指令集 和  符号表   以及若 ...

  4. php数据结构课程---1、数据结构基础介绍(程序是什么)

    php数据结构课程---1.数据结构基础介绍(程序是什么) 一.总结 一句话总结: 程序=数据结构+算法 设计好数据结构,程序就等于成功了一半. 数据结构是程序设计的基石. 1.数据的逻辑结构和物理结 ...

  5. JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

    前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...

  6. 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现

    应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关 ...

  7. Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题

    Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...

  8. PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类

    一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...

  9. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

随机推荐

  1. The mean shift clustering algorithm

    The mean shift clustering algorithm MEAN SHIFT CLUSTERING Mean shift clustering is a general non-par ...

  2. C# ManualResetEvent 的方法介绍

        名称 说明 1. Close 在派生类中被重写时,释放由当前 WaitHandle 持有的所有资源. (继承自 WaitHandle.)在XNA Framework中,此成员由 Close() ...

  3. 不错的linux下通用的java程序启动脚本

    不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...

  4. [bug]使用SharpZipLib遇到中文名称乱码问题

    写在前面 业务逻辑是这样的,需要导出一个app的话题,并需要把该话题下帖子的附件导出,然后需求想修改成人员的名称.jpg的格式.所以就出现了中文乱码的问题.在本地没问题,但发布到服务器上面就出问题,每 ...

  5. linux下的视频音频播放器终极解决方案

    要使用(启用)rpmfusion, 一定要先启用enable epel包: Important notes You need to enable EPEL on RHEL 5 & 6 or c ...

  6. 《PHP程序设计》读书笔记

    好久没有更新过我的博客了,主要前一阵子去了实习,现在实习进入尾声,终于有机会看看书了. 在前一阵子的实习中,用到最多就是PHP的CI框架和Jquery,所以现在再看一本有关PHP的书籍来深刻认识一下P ...

  7. Base64封装类

    using System;using System.Collections.Generic;using System.Linq;using System.Web; /// <summary> ...

  8. 忘记mysql root用户密码

    今天帮一个售后的同事解决网盘无登录的问题,看了下后台日志,报错用密码root连接不上数据库,然后我就强行改了一下数据库密码,就OK了. (1)用root登录系统. (2)vim /etc/my.cnf ...

  9. :( Call to a member function Table() on a non-object 错误位置

    :( Call to a member function Table() on a non-object 错误位置 $Model不是模板,是你自己先前链接数据库返回的对象...我的是改为$Form

  10. 解决eclipse+MAVEN提示One or more constraints have not been satisfied.的问题

    应用版本:eclipse luna4.4.1 JDK:1.8 Maven:3.2.5 问题现象: 1.编译工程后总该是显示下面两个错误: One or more constraints have no ...