m0_58983236 2021-10-07 21:58 采纳率: 100%
浏览 19
已结题

哪里出了问题,帮我看看

#include
using namespace std;

class List{
public:
List();
List();
void CreateList(int n);
int SearchList(int n);
int DeleteList(int n);
void Getprior(int x);
void Getnext(int x);
void Isempty();
void ShowList();
void GetLength();
void ClearList();
private:
int data[100];
int length;
};
List::List() //构造函数
{
length=0;
}
List::
List() //析构函数
{
length=0;
}
void List::CreateList(int n) //创建顺序表
{
if(n<=0) cout<<"你输入的创建节点个数有问题。"<<endl;
for(int i=0;i<n;i++){
cout<<"请输入第"<<i+1<<"个数:";
cin>>data[i];
length++;
}
}
int List::SearchList(int n) //按照地址查询
{
int x;
if(n<=0) throw "下溢";
if(n>length) throw "上溢";
for(int i=0;i<length;i++)
{
if(i==n-1)
{
cout<<"查找元素为:"<<data[i]<<endl;
x=data[i];
return x;
}

}
cout<<"该元素不存在"<<endl;

}

int List::DeleteList(int n) //删除指定的位置
{
int x;
if(n<=0) throw "下溢";
if(n>length) throw "上溢";
for(int i=0;i<length;i++){
if(i==n-1)
{
x=data[i];
for(int j=i+1;j<length;i++,j++)
{
data[i]=data[j];
}
length--;
cout<<"删除成功!"<<endl;
return x;
}
}
}
void List::Getprior(int x)
{
for(int i=0;i<length;i++){
if(data[i]==x)
{
if(i==0)
cout<<"该元素无前驱"<<endl;
else
cout<<"该元素前驱为:"<<i-1<<endl;
}
}
}
void List::Getnext(int x)
{
for(int i=0;i<length;i++)
{
if(data[i]==x)
{
if(i==length-1)
cout<<"该元素无后继"<<endl;
else
cout<<"该元素后继为:"<<i+1<<endl;
}
}
}

void List::Isempty()
{
if(length==0)
cout<<"该顺序表非空!"<<endl;
else
cout<<"该顺序表为空!"<<endl;
}
void List::ShowList()
{
for(int i=0;i<length;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
void List::GetLength()
{
cout<<"该顺序表长度为:"<<length<<endl;
}
void List::ClearList()
{
length=0;
cout<<"删除成功"<<endl;
}

int main(){
List A;
int sel;
while(true){
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;
cout<<"10.退出程序:"<<endl;
cin>>sel;
switch(sel){
case 1:
int n;
cout<<"输入添加的顺序表元素个数:";
cin>>n;
A.CreateList(n);
break;
case 2:
int n1;
cout<<"输入查找的顺序表元素位置:";
cin>>n1;
A.SearchList(n1);
break;
case 3:
int n2;
cout<<"输入删除的顺序表元素位置:";
cin>>n2;
A.DeleteList(n2);
break;
case 4:
int n3;
cout<<"输入查找的顺序表元素:";
cin>>n3;
A.Getprior(n3);
break;
case 5:
int n4;
cout<<"输入查找的顺序表元素:";
cin>>n4;
A.Getnext(n4);
break;
case 6:
A.Isempty();
break;
case 7:
A.GetLength();
break;
case 8:
A.ClearList();
break;
case 9:
A.ShowList();
break;
case 10:
exit(0);
break;
}
}
system("pause");
return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月15日
    • 创建了问题 10月7日

    悬赏问题

    • ¥15 做一个简单项目,用Python分析共享单车的数据
    • ¥20 在使用CESM2.2.0模型进行case.submit过程中出现如下错误(关键词-Map)
    • ¥15 有办法改变通过wifi进入的网站的设置吗
    • ¥15 所以到底怎么算!算到凌晨五点都算不出来!
    • ¥15 label_studio
    • ¥15 请教如何phython发邮件
    • ¥15 linux系统安装问题
    • ¥15 路径规划如何采用矢量法让他们尽量在一个方向
    • ¥15 crypto 一道rsa解密题
    • ¥15 survIDINRI已将生存时间转为数值变量,仍错误 Time variable is not numeric。