noj 1004线性表的操作
来源:互联网 发布:萨龙网络 编辑:程序博客网 时间:2024/05/19 17:23
这道题本身没什么难度,主要是通过此题练习一下模板的用法(事实上完成此题时还查了一下模板部分的内容)
有两点值得注意:1,颠倒时要用另外一个数组来保存原来的数组。
2.注意是删除所有元素
直接上AC代码:
#include <iostream>
using namespace std;
template <class T>
class SeqList
{
private:
int Length;
T *a;
public:
SeqList(int L);
void change();
void Delete(T x);
~SeqList(){delete []a;}
void Print();
};
template<class T>
SeqList<T>::SeqList(int L)
{
int i;
Length=L;
a=new T[Length];
for (i=0;i<Length;i++)
cin>>a[i];
}
template <class T>
void SeqList<T>::change()
{
int i;
T *b=new T [Length];
for (i=0;i<Length;i++)
b[i]=a[i];
for (i=0;i<Length;i++)
a[i]=b[Length-i-1];
}
template <class T>
void SeqList<T>::Delete(T x)
{
int i,j,sum=0;;
for (i=0;i<Length-sum;i++)
{
if (a[i]==x)
{
for (j=i;j<Length-1-sum;j++)
a[j]=a[j+1];
sum++;
i--;
}
}
Length=Length-sum;
}
template <class T>
void SeqList<T>::Print()
{
int i;
if (Length==0)
cout<<endl;
else
{
for (i=0;i<Length;i++)
cout<<a[i]<<" ";
cout<<endl;
}
}
int main()
{
int n,x1;
char x2;
double x3;
cin>>n;
SeqList<int>A(n);
A.change();
A.Print();
cin>>x1;
A.Delete(x1);
A.Print();
cin>>n;
SeqList<char>B(n);
B.change();
B.Print();
cin>>x2;
B.Delete(x2);
B.Print();
cin>>n;
SeqList<double>C(n);
C.change();
C.Print();
cin>>x3;
C.Delete(x3);
C.Print();
}
- noj 1004线性表的操作
- 线性表的操作
- 线性表的操作
- 线性表的操作
- 线性表的操作
- 1004-线性表操作
- 1004线性表操作
- 1004 线性表操作
- 线性链表的操作
- 线性链表的操作
- 线性表的基本操作
- 线性表的基本操作
- 线性表的基本操作
- 线性表的基本操作
- 线性表的基本操作
- 线性表的完整操作
- 线性表的union操作
- 对线性表的操作
- Git 服务器搭建与客户端安装
- Java-Java 7 增强后的switch分支语句
- Android实战简易教程-第四十八枪(App引导页面效果实现)
- Struts面试题
- 腾讯2015春招pc客户端开发练习卷
- noj 1004线性表的操作
- 链表的删除和插入
- Struts面试题
- 【软考】递归调用
- POJ 2528 Mayor's posters(线段树+离散化)
- android发送短信
- Permission is only granted to system apps
- Java中Object类
- JavaScript打开新页面的方法