#2
yangfrancis2017-02-11 15:19
|
程序代码:
#include<iostream>
using namespace std;
const int n=20;
class aa
{
int *a;
int i,j;//是A,B的长度;
public:
void chuangjian();
void xiaohui();
void qingkong();
void changdu();
void weizhi();
void qianqu();
void houji();
void charu();
void shanchu();
};
void aa::chuangjian()
{
i=j=0;
a=new int[n];
cout<<"请输入表1中的数据(以负数结束)"<<endl;
while(cin>>a[i]&&a[i]>0)
{
i++;
}
}
void aa::xiaohui()
{
if(a=NULL)
i=0;
delete(a);
cout<<"销毁成功"<<endl;
}
void aa::qingkong()
{
if(a=NULL)
{
cout<<"error!"<<endl;
exit(-1);
}
i=j=0;
cout<<"已经清空!"<<endl;
}
void aa::changdu()
{
cout<<"表A的长度为:"<<i<<endl;
}
void aa::weizhi()
{
int s;
int k;//用于检索
cout<<"请输入需要查找的数:"<<endl;
cin>>s;
for(k=0;k<=i;k++)
{
if(s==a[k])
{
cout<<"概数的位置为"<<k+1<<"个"<<endl;
}
}
}
void aa::qianqu()
{
int s;
int k;//用于检索
cout<<"请输入需要查找的数:"<<endl;
cin>>s;
for(k=0;k<=i;k++)
{
if(s==a[k])
{
cout<<"该数的前驱为: "<<a[k-1]<<endl;
}
}
}
void aa::houji()
{
int s;
int k;//用于检索
cout<<"请输入需要查找的数:"<<endl;
cin>>s;
for(k=0;k<=i;k++)
{
if(s==a[k])
{
cout<<"该数的后继为: "<<a[k+1]<<endl;
}
}
}
void aa::charu()
{
int s;//插入的数据
int r;//插入的位置
int k;//用于检索
cout<<"请输入需要插入的数:"<<endl;
cin>>s;
cout<<"请输入需要插入数的位置"<<endl;
cin>>r;
if(r<0||r>i)
cout<<"插入位置错误!"<<endl;
for(k=i;k>=r;k--)
{
a[k+1]=a[k];
}
a[r]=s;
cout<<"插入之后的数据:"<<endl;
for(k=0;k<i+1;k++)
cout<<" "<<a[k];
}
void aa::shanchu()
{
int s;
int fl;
int k;//用于检索
int r;//用于删除
cout<<"请输入需要删除的数字:"<<endl;
cin>>s;
for(k=0;k<=i;k++)
{
fl=0;
if(s==a[k])
{
fl=1;
break;
}
else fl=0;
}
if(fl==1)
{
for(r=k;r<i;r++)
{
a[r]=a[r+1];
}
}
else if(fl==0)
cout<<"该元素不存在,无法删除!"<<endl;
for(r=0;r<i-1;r++)
cout<<" "<<a[r];
}
void show()
{
cout<<" 请选择 :"<<endl;
cout<<" 1.创建 "<<endl;
cout<<" 2.销毁 "<<endl;
cout<<" 3.清空 "<<endl;
cout<<" 4.长度 "<<endl;
cout<<" 5.位置 "<<endl;
cout<<" 6.前驱 "<<endl;
cout<<" 7.后继 "<<endl;
cout<<" 8.插入 "<<endl;
cout<<" 9.删除 "<<endl;
}
int main()
{
int leap;
aa *p;
p=new aa;
show();
while(cin>>leap&&leap<12&&leap>0)
{
system("cls");
switch(leap)
{
case 1:p->chuangjian();break;
case 2:p->xiaohui();break;
case 3:p->qingkong();break;
case 4:p->changdu();break;
case 5:p->weizhi();break;
case 6:p->qianqu();break;
case 7:p->houji();break;
case 8:p->charu();break;
case 9:p->shanchu();break;
}
show();
}
return 0;
}