标签:io os for 数据 sp div ef size bs
#include <iostream>
using namespace std;
#define MaxSize 25
typedef int DataType;
class SeqList{
DataType list[MaxSize];
int length;
public:
SeqList(){length = 0;}
void SLCreat(int n);//创建顺序表
void SLInsert(int i, DataType x); //在顺序表L中的第i个位置插入数据元素x
void SLDelete(int i); //在顺序表L中的第i个位置删除数据元素
DataType SLGet(int i); //获取第i个位置的元素位置
DataType SLSum(); //求和
int SLIsEmpty(); //判断顺序表是否为空
void SLPrint(); //将顺序表显示在屏幕上
};
//创建顺序表
void SeqList::SLCreat(int n){
DataType x;
cout << "请输入数据元素值:";
for(int i = 0; i < n; i++){
cin >> x;
list[i] = x;
length++;
}
}
//在顺序表L中的i位置插入数据元素
void SeqList::SLInsert(int i, DataType x){
int k;
if(length >= MaxSize){
cout << "表已满,无法插入!" << endl;
}
else if(i < 0 || i > length){
cout << "参数i不合理!" << endl;
}
else{
for(k = length; k > i; k--){
list[k] = list[k - 1];
}
list[i] = list[i - 1];
list[i - 1] = x;
length++;
}
}
//删除第i个位置的元素
void SeqList::SLDelete(int i){
int k;
if(!SLIsEmpty()){
cout << "表已空,无法删除!" << endl;
}
else if(i < 0 || i > length){
cout << "参数i不合理!" << endl;
}
else{
for(k = i - 1; k < length; k++){
list[k] = list[k + 1];
}
length--;
}
}
//获取第i个位置的元素的数值
DataType SeqList::SLGet(int i){
if(i < 0 || i > length){
cout << "参数i不合理!" << endl;
return 0;
}
else{
return list[i - 1];
}
}
//判断书序表是否为空
int SeqList::SLIsEmpty(){
if(length <= 0){
return 0;
}
else{
return 1;
}
}
//将顺序表显示在屏幕上
void SeqList::SLPrint(){
if(!SLIsEmpty()){
cout << "空表!" << endl;
}
else{
for(int i = 0; i < length; i++){
cout << list[i] << " ";
}
cout << endl;
}
}
//求和
DataType SeqList::SLSum(){
int sum = 0;
for(int i = 0; i < length; i++){
sum += list[i];
}
return sum;
}
int main(){
SeqList mylist;
int i, n, flag = 1, select;
DataType x;
cout << "1.建立顺序表\n" ;
cout << "2.求第i个位置上的数值\n" ;
cout << "3.在第i个位置前插入数值元素x\n" ;
cout << "4.删除第i个位置上的数值\n" ;
cout << "5.该顺序表上各个元素之和\n" ;
cout << "6.输出显示\n" ;
cout << "7.退出\n" ;
cout << "特别说明:第一次请选择1,以后就不要选择1了!\n";
while(flag){
cout << "请选择:";
cin >> select;
switch(select){
case 1:
cout << "请输入顺序表长度:";
cin >> n;
mylist.SLCreat(n);
cout << "顺序表为: ";
mylist.SLPrint();
break;
case 2:
cout << "请输入位置i:";
cin >> i;
cout << "第" << i << "个位置上的数值为:" << mylist.SLGet(i) << endl;
break;
case 3:
cout << "请输入要插入元素的位置i和数值x";
cin >> i >> x;
mylist.SLInsert(i, x);
mylist.SLPrint();
break;
case 4:
cout << "请输入要删除的数值的位置:";
cin >> i;
mylist.SLDelete(i);
cout << "删除后的顺序表为:";
mylist.SLPrint();
break;
case 5:
cout << "求和的值: " << mylist.SLSum() << endl;
break;
case 6:
cout << "顺序表为: ";
mylist.SLPrint();
break;
case 7:
flag = 0;
break;
}
}
return 0;
}
顺序表
标签:io os for 数据 sp div ef size bs
原文地址:http://www.cnblogs.com/angle-qqs/p/4014386.html