multiset实现ALV树

#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
void main()
{
typedef multiset<int,less<int> >IntSet;
typedef multiset<int,less<int> >::iterator msl_RcIter;
IntSet msl;
cout<<"请输入数据元素的个数:";
int num,i,num1;
cin>>num;
for(i=1;i<=num;i++)
{
num1=rand()%100;
msl.insert(num1);
}
msl_RcIter s3;
for(s3=msl.begin();s3!=msl.end();s3++)
cout<<*s3<<" ";
cout<<endl;
cout<<"查找操作:"<<endl;
int serach_num;
msl_RcIter s1;
char select,select1;
while(true)
{
cout<<"请输入查找元素"<<endl;
cin>>serach_num;
s1=msl.find(serach_num);
if(s1!=msl.end())
cout<<"查找成功"<<endl;
else
{
cout<<"查找不成功,是否将该元素插入ALV树中(Y/N):";
cin>>select;
if(select=='Y')
msl.insert(serach_num);
else
continue;
}
cout<<"是否继续查找(Y/N):";
cin>>select1;
if(select1=='N')
break;
}
for(s3=msl.begin();s3!=msl.end();s3++)
cout<<*s3<<" ";
cout<<endl;
cout<<"删除操作:"<<endl;
int delete_num;
while(true)
{
cout<<"请输入要删除元素"<<endl;
cin>>delete_num;
s1=msl.find(delete_num);
if(s1!=msl.end())
msl.erase(s1);
else
cout<<"ALV树中无此结点";
cout<<"是否继续执行删除操作(Y/N):";
cin>>select;
if(select=='N')
break;

}
msl_RcIter s2;
for(s2=msl.begin();s2!=msl.end();s2++)
cout<<*s2<<" ";
cout<<endl;
}

posted @ 2012-12-11 21:20  ♂咱說 ろ算  阅读(214)  评论(0编辑  收藏  举报