DS单链表—删除重复元素
题目描述
给定n个整数,按输入顺序建立单链表,删除其中的重复数字,输出结果链表。(要求不可以构建新结点,不可以定义新链表。在原链表上删除。)
输入
测试次数t
每组测试数据一行:
n(表示有n个整数),后跟n个数字
输出
对每组测试数据,输出删除重复数字后的结果链表表长和每个元素,具体格式见样例。
样例输入
3
10 1 2 3 4 1 2 10 20 30 20
5 1 1 1 1 1
6 20 22 22 22 22 20
样例输出
7: 1 2 3 4 10 20 30
1: 1
2: 20 22
#include<iostream>
using namespace std;
#define maxx 100;
#define maxSize 1000;
class SqList
{
private:
int *list;
int size;
int maxsize;
public:
SqList()
{
maxsize = maxSize;
size = 0;
list = new int[maxsize];
}
SqList(int n)
{
maxsize = maxSize;
list = new int[maxsize];
cin >> n;
size = n;
for(int i=0;i<n;i++)
{
cin >> list[i];
}
}
int getListSize()
{
return size;
}
void delSameElem()
{
int i,j,sum = 0;
for(i = 0; i < size; i++)
{
for(j=0;j<sum;j++)
if(list[j] == list[i])
break;
if(j == sum) //没有重复元素
list[sum++] = list[i];
}
cout << sum << ": ";
for(int i=0;i<sum;i++)
cout << list[i] << ' ';
cout << endl;
}
};
int main()
{
int t;
int n;
cin >> t;
while(t--)
{
SqList list(n);
list.delSameElem();
}
return 0;
}