hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)
基础数据结构——顺序表(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)(数据结构,顺序表的实现及基本操作,入门题)的更多相关文章
- PHP数据结构之二 线性表中的顺序表的PHP实现
线性表 (一)基本特点:最基本.最简单.最常用的一种数据结构 在这种结构中: 1.存在一个唯一的被称为“第一个”的数据元素: 2.存在一个唯一的被称为“最后一个”的数据元素: 3.除第一个元素外,每个 ...
- SDUT OJ 数据结构上机测试1:顺序表的应用
数据结构上机测试1:顺序表的应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...
- [一]class 文件浅析 .class文件格式详解 字段方法属性常量池字段 class文件属性表 数据类型 数据结构
前言概述 本文旨在讲解class文件的整体结构信息,阅读本文后应该可以完整的了解class文件的格式以及各个部分的逻辑组成含义 class文件包含了java虚拟机指令集 和 符号表 以及若 ...
- php数据结构课程---1、数据结构基础介绍(程序是什么)
php数据结构课程---1.数据结构基础介绍(程序是什么) 一.总结 一句话总结: 程序=数据结构+算法 设计好数据结构,程序就等于成功了一半. 数据结构是程序设计的基石. 1.数据的逻辑结构和物理结 ...
- JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)
前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...
- 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现
应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关 ...
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类
一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...
- Java基础-JAVA中常见的数据结构介绍
Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...
随机推荐
- Eclipse启动时卡死解决方法
Eclipse未正常关闭时,再次启动通常会卡死,解决方法为:到<workspace>\.metadata\.plugins\org.eclipse.core.resources目录,删除文 ...
- 一分钟认识GitHub
一分钟认识GitHub 机缘巧合之下,我开始使用 GitHub ,但事实上,刚刚入门的我不知道如何才能使 GitHub 发挥他的全部功能.不久之前,我偶然听了李福斯先生对 GitHub 的介绍,受益匪 ...
- CentOS 6.6编译安装Nginx1.6.2+MySQL5.6.21+PHP5.6.3(转)
vi /etc/sysconfig/iptables #编辑防火墙配置文件 # Firewall configuration written by system-config-firewall # M ...
- hibernate criteria中Restrictions的用法
方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge ...
- DetachedCriteria详细使用
一.基本使用 1. 说明 Restrictions 是产生查询条件的工具类. 2. 定义 可以直接用class 创建 DetachedCriteria searDc = DetachedCriteri ...
- 如何快速读懂大型C++程序代码
要搞清楚别人的代码,首先,你要了解代码涉及的领域知识,这是最重要的,不懂领域知识,只看代码本身,不可能搞的明白.其次,你得找各种文档:需求文档(要做什么),设计文档(怎么做的),先搞清楚你即将要阅读是 ...
- Serenity框架官方文档翻译(1-2开始、安装和界面)
1.开始 最好的和最快速地上手Serenity的方法是使用SERENE,它是一个示例应用程序模板. 您有2个选项来安装SERENE 模板到您的Visual Studio: 从Visual Studio ...
- 一张图解释Hadoop IPC
基于hadoop2.6.2.... 一张图Server启动,Client访问..... RPC是IPC的一种,IPC还有另外一种LPC,相关请看参考中的3 使用hadoop ipc步骤: 1.定义RP ...
- Entity Framework 自动生成CodeFirst代码
前言 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework Power To ...
- FTP服务器常规操作
导读 FTP协议是Internet文件传输的基础,它是由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据.下面就由我给大家简单介绍一下 ...