ACM-线性表操作

线性表操作

时间限制(普通/Java):1000MS/3000MS      
   运行内存限制:65536KByte
总提交:2795         
  测试通过:589

描述

线性表是n个元素的有序集合(n30),n是线性表中元素的个数,称为线性表的长度。可以用一组地址连续的存储单元依次存储线性表中元素,采用这种存储方式的线性表称为顺序表。

请在顺序表上实现运算,实现顺序表的逆置,删除表中所有元素值等于x的元素。

输入

三组数据,顺序表元素类型分别为整型、字符型和实型。

每一组第一行给出元素数目n(0<n≤1000),第二行给出元素数值,第三行给出待删除的元素。

输出

三组数据,每一组第一行为逆置后的顺序表元素,第二行是在此基础上删除指定元素后的顺序表元素

样例输入

8
1 2 3 7 5 6 7 8 
7
3
a c m
h
4
1.2 3.4 5.6 7.8
1.2

样例输出

8 7 6 5 7 3 2 1 
8 6 5 3 2 1 
m c a 
m c a 
7.8 5.6 3.4 1.2 
7.8 5.6 3.4

提示

该题属于南京邮电大学《数据结构A》实验一中的内容,验证的是课本代码,每一个输出元素后均有一个空格(包括最后一个元素),请慎重解答。

题目来源

CHENZ


#include<iostream>
using namespace std;
template<class T>
class SeqList
{
private:
T * elements;
int maxLength;
int n;
public:
SeqList(int nSize)
{
maxLength=nSize;
elements=new T[maxLength];
n=0;
}
void Insert(T x)
{
if(n>=maxLength)
cout<<"out of bounds"<<endl;
elements[n]=x;
n++;
}
void Delete(T x)
{
for(int i=0;i<n;i++)
{
if(elements[i]==x)
{
for(int j=i;j<n;j++)
elements[j]=elements[j+1];
n--;
i--;
}
}
}
void outPut()
{
for(int i=n-1;i>=0;i--)
{
cout<<elements[i]<<" ";
}
cout<<endl;
}
};
int main()
{
int n;
cin>>n;
SeqList<int> list(n);
int x;
for(int i=0;i<n;i++)
{
cin>>x;
list.Insert(x);
}
cin>>x;

int size;
cin>>size;
SeqList<char> clist(size);
char ch;
for(int k=0;k<size;k++)
{

cin>>ch;
clist.Insert(ch);
}
cin>>ch;

int size2;
cin>>size2;
SeqList<float> flist(size2);
float value;
for(int m=0;m<size2;m++)
{
cin>>value;
flist.Insert(value);
}
cin>>value;

list.outPut();
list.Delete(x);
list.outPut();
clist.outPut();
clist.Delete(ch);
clist.outPut();
flist.outPut();
flist.Delete(value);
flist.outPut();
return 0;
}

题目链接http://202.119.236.66:9080/acmhome/problemdetail.do?&method=showdetail&id=1004

ACM-线性表操作,布布扣,bubuko.com

时间: 2024-10-24 22:43:39

ACM-线性表操作的相关文章

【算法与数据结构实战】线性表操作-实现A并B,结果放入A中

//数据结构与算法基础题1:线性表操作,实现A并B,结果放入A中 #include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <algorithm> #pragma warning(disable:4996) using namespace std; int main() { vector<int> set_A, se

线性表操作练习

/*1.线性表练习(1)从给定顺序表A中删除元素值在x到y(x<=y)之间的所有元素,效率要求较高.*/ int def(vector A,int n,ElemType x,ElemType y) { int i=0,k=0; while(i<0) { if(A[i]>=x&&A[i]<=y) k++; else A[i-k]=A[i]; i++; } return n-k; } /*(2)用不多于3n/2的平均比较次数,在一个顺序表A中找出最大的和最小的值.*/

TOJ 1214: 数据结构练习题――线性表操作

描述 请你定义一个线性表,可以对表进行"在某个位置之前插入一个元素"."删除某个位置的元素"."清除所有元素"."获取某个位置的元素"等操作.键盘输入一些命令,可以执行上述操作.本题中,线性表元素为整数,线性表的第一个元素位置为1.线性表的最大长度为1000. 输入 各个命令以及相关数据,它们对应的格式如下: 在某个位置之前插入操作:insert,接下来的一行是插入的组数n,下面是n行数据,每行数据有两个值,分别代表位置与插入

线性表操作

#include<iostream>      //c++头文件 using namespace std;   #define LIST_INIT_SIZE 20     //预定义常量 #define LISTINCREMENT 5 #define OK 1 #define ERROR 0 typedef int ElemType;              //定义类型 typedef int Status; typedef struct                        //

数据结构与算法复习第一天——基础概念,线性表

数据结构的一些基本术语: 数据:客观事物的符号表示 数据元素:数据集合中的一个个体 数据项 组成数据元素 数据对象是数据的子集 由相同性质的数据元素构成 数据结构:带有结构的数据元素的集合 数据结构可以用一个四元组表示(D,L,S,O) data ,logical structrue ,storage struction operation操作 L——集合,线性,树形,图形 S——存储结构,有顺序,链式,散列 线性表——线性结构,数据元素之间一对一的关系, N个具有相同类型的数据元素的有限序列

一. 数据结构干货系列之一:线性表基本操作

1. 如果一个链表结点数大于等于2,把首节点变为尾结点 status A(LinkList L){ //L是无头结点的单链表 if(L&&L->next){ Q=L; P=L->next; while(P->next) {P=P->next;} P->next=Q; Q->next=null; } return ok; } //如果一个链表结点数大于等于2,把首节点变为尾结点. 2. 将单循环链表拆成两个单循环链表 void AA(LNode *a,LN

线性表 及Java实现 顺序表、链表、栈、队列

数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值,至少在一段时间之后,技术可以很快得到提高.同时,它也是软考的重点,我们需要对这部分的内容进行一下总结. 我们先看一下数据结构和算法的整体内容. 1.线性表 概念: 数据元素的排列方式是线性的. 分类: 分类规则是根据上图中元素的存储结构来划分的. (1)顺序表 基本思想:元素的存储空间是连续的.在内

(数据结构)顺序存储的线性表

---恢复内容开始--- 推荐一本学习书籍:程杰的<大话数据结构>. 既然是数据结构,那什么是数据结构呢?这里补充一些基本术语和概念. 数据结构: 是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科. 数据: 是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号总集. 数据元素: 是组成数据.有一定意义的基本单位,在计算机中通常作为整体处理.也成为记录. 数据项: 一个数据元素可以由若干个数据项组成.数据项是数据不可分

二、线性表的概念与实现

1.线性表的本质与相关操作 线性表的定义?线性表(List)是零个或多个数据元素的集合?线性表中的数据元素之间是有顺序的?线性表中的数据元素个数是有限的?线性表中的数据元素的类型必须相同线性表的性质?a0为线性表的第一个元素,只有一个后继?an为线性表的最后一个元素,只有一个前驱?除a0和an外的其它元素ai,既有前驱,又有后继?线性表能够逐项访问和顺序存取线性表的一些常用操作?创建线性表?销毁线性表?清空线性表?将元素插入线性表?将元素从线性表中删除?获取线性表中某个位置的元素?获取线性表的长