线性表的顺序存储
Time Limit: 1000MS | Memory Limit: 65535KB |
Submissions: 1667 | Accepted: 443 |
Sample Input
10
55
1 2 33 44 55 55 55 44 55 12
Sample Output
12 55 44 55 55 55 44 33 2 1
12 44 44 33 2 1
线性表:
#include <iostream>
using namespace std;
const int MaxListSize = 100; class SeqList
{
private:
int data[MaxListSize];
int size;
public:
SeqList ( void );
~SeqList ( void );
void Insert ( int item, int pos );
int Delete ( int item );
int GetData ( int pos );
};
SeqList::SeqList ( void ): size ( 0 ) {}
SeqList::~SeqList ( void ) {}
void SeqList::Insert ( int item, int pos )
{
for ( int i=size; i>pos; i-- )
data[i]=data[i-1];
data[pos]=item;
size++;
}
int SeqList::Delete ( int item )
{
int i=0, j;
while ( data[i]!=item )
i++;
for ( j=i+1; j<size; j++ )
{
if ( data[j]!=item )
{
data[i]=data[j];
i++;
}
}
size=i;
return size;
}
int SeqList::GetData ( int pos )
{
return data[pos];
}
int main ()
{
int n, item, i, size;
int a[100];
SeqList list;
cin>>n>>item;
for ( i=0; i<n; i++ )
{
cin>>a[i];
list.Insert ( a[i], 0 );
}
for ( i=0; i<n-1; i++ )
cout<<list.GetData ( i )<<" ";
cout<<list.GetData(n-1)<<endl;
size=list.Delete ( item );
for ( i=0; i<size-1; i++ )
cout<<list.GetData ( i )<<" ";
cout<<list.GetData(size-1)<<endl;
return 0;
}
数组模拟:
#include<iostream>
using namespace std;
int main()
{
int n,k,a[100],i,j,b[100];
cin>>n>>k;
for(i=0;i<n;i++)
cin>>a[i];
i=0;
for(j=0;j<n;j++)
if(a[j]!=k)
{
b[i]=a[j];
i++;
}
int size=i;
for(i=n-1;i>0;i--)
cout<<a[i]<<" ";
cout<<a[0]<<endl;
for(i=size-1;i>0;i--)
cout<<b[i]<<" ";
cout<<b[0]<<endl;
}