Description
(线性表)在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。Input 输入长度:6
输入数据:2 3 4 5 5 7
Output 2 3 4 5 7
Sample Input 6 8 9 10 11 22 22 Sample Output 8 9 10 11 22
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct List
{
int num;
struct List *next;
};
List* creatList()
{
List *p = new List;
p->num = 0;
p->next = 0;
return p;
}
void insertList(List *p,int num)
{
//若元素数目为0
if(p->num==0)
{
p->num = num;
}
else
{
while(p->next!=0)
p = p->next;
List *np = new List;
np->num = num;
np->next = 0;
p->next = np;
}
}
void deleteNum(List *p)
{
if(p->next==0)
{
return;
}
int num;
int nnum;
while(p!=0&&p->next!=0)
{
num = p->num;
nnum = p->next->num;
if(nnum==num)
{
List *tp = p->next;
p->next = p->next->next;
delete tp;
}
p = p->next;
}
}
void showList(List *p)
{
while(p!=0)
{
cout << p->num << " ";
p = p->next;
}
}
int main()
{
int n;
cin >> n;
List *p = creatList();
for(int i=0;i<n;i++)
{
int num;
cin >> num;
insertList(p,num);
}
deleteNum(p);
showList(p);
return 0;
}