ACM 线性表操作
来源:互联网 发布:js 非严格模式 编辑:程序博客网 时间:2024/05/16 17:56
线性表操作
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:2745 测试通过:576
Java
总提交:2745 测试通过:576
描述
线性表是n个元素的有序集合(n³0),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
C++ 模板类
#include<iostream>using namespace std;int lenA,lenB,lenC;int delA;char delB;float delC;template<class T>void Input(T *array, int num) // input { for(int i=0;i<num;i++) { cin>>array[i]; } }template<class T>void Output(T *array, int num) // Output{ for (int i=num-1;i>-1;i--) { cout<<array[i]<<" "; } cout<<endl; }template <class T>int Del(T *array,int num,T key) // delete{int k=0;for (int i = 0; i < num; i++) {if (array[i] != key) {array[k++] = array[i];}}num = k;return num;}int main(){int *arrA; cin>>lenA; arrA = (int *) malloc(sizeof(int *)*lenA); Input(arrA,lenA); cin>>delA;Output(arrA,lenA);lenA=Del(arrA,lenA,delA);Output(arrA,lenA);//char *arrB;cin>>lenB;arrB = (char *) malloc(sizeof(char *)*lenB); Input(arrB,lenB); cin>>delB;Output(arrB,lenB);lenB=Del(arrB,lenB,delB);Output(arrB,lenB);//float *arrC;cin>>lenC;arrC = new float [lenC]; Input(arrC,lenC);cin>>delC;Output(arrC,lenC);lenC=Del(arrC,lenC,delC);Output(arrC,lenC);}
Java
import java.util.*;class Slist {Object[] datas;int length;}public class Main {/* * delete */public static void del(Slist slist, Object key) {int k = 0;for (int i = 0; i < slist.length; i++) {if (slist.datas[i].equals(key) == false) {slist.datas[k++] = slist.datas[i];}}slist.length = k;}/* * print */public static void print(Slist slist) {for (int i = 0; i < slist.length; i++) {System.out.print(slist.datas[i] + " ");}System.out.println();}/* * reverse */public static void reverse(Slist slist) {Object tmp;for (int i = 0; i < slist.length / 2; i++) {tmp = slist.datas[i];slist.datas[i] = slist.datas[slist.length - i - 1];slist.datas[slist.length - i - 1] = tmp;}}/* * main */public static void main(String[] args) {Slist slist = new Slist();Scanner cin = new Scanner(System.in);/* * intArrray */slist.length = cin.nextInt();slist.datas = new Object[slist.length];for (int i = 0; i < slist.length; i++)slist.datas[i] = cin.nextInt();int delKey = cin.nextInt();reverse(slist);print(slist);del(slist, delKey);print(slist);/* * charArray */slist.length = cin.nextInt();slist.datas = new Object[slist.length];String useless = cin.nextLine();String tmp = cin.nextLine();int xiabiao = 0;for (int i = 0; xiabiao < slist.length; i = i + 2) {slist.datas[xiabiao] = tmp.charAt(i);xiabiao++;}char delKey1 = cin.nextLine().charAt(0);reverse(slist);print(slist);del(slist, delKey1);print(slist);/* * floatArray */slist.length = cin.nextInt();slist.datas = new Object[slist.length];for (int i = 0; i < slist.length; i++)slist.datas[i] = cin.nextFloat();float delKey11 = cin.nextFloat();reverse(slist);print(slist);del(slist, delKey11);print(slist);}}
0 0
- ACM 线性表操作
- [ACM]线性表操作
- 线性表操作
- 线性表操作
- 数据结构--线性表操作
- 线性表的操作
- C++线性表操作
- 线性表操作
- C++线性表操作
- 线性表操作
- 线性表操作练习
- 线性表基本操作
- 线性表的操作
- 线性表操作
- 线性表简单操作
- 线性表操作
- NOJ1004线性表操作
- 线性表操作
- UVA571- Jugs
- C++重载箭头操作符
- python 中使用sqlite3数据库
- 小手莫贱,防患未然
- Linux命令简介(目录操作命令、文件操作命令)
- ACM 线性表操作
- JVM
- Java的包访问权限(friendly)
- 【HDU】4632 Palindrome subsequence (DP)
- set 的使用例子
- 有关delegate
- POJ 3311 Hie with the Pie(状态压缩DP)
- OpenWrt patch方法
- LINUX 下,编程自学六:TCP,多线程编写