1. 顺序表
#include <iostream>
using namespace std;
typedef int DataType;
const int MaxSize = 50;
class List{
int size;
DataType data[MaxSize];
public:
List();
~List();
bool IsEmpty();
bool IsFull();
void Creat(int n,DataType a[]);
void Insert(int n, DataType e);
DataType Delete(int n);
DataType GetElem(int n);
int Locate(DataType e);
void PrintList();
void Clear();
int Length(){
return size;}
};
List::List(){
size = 0;
}
List::~List(){
}
bool List::IsEmpty(){
return size == 0;
}
bool List::IsFull(){
return size == MaxSize -1;
}
void List::Creat(int n,DataType a[]){
for(int i = 0;i < n ;i++){
data[i] = a[i];
}
size = n;
}
void List::Insert(int n ,DataType e){
if(n < 1 || n > size + 1 || size >= MaxSize){
cout << "插入位置不合理!!!" << endl;
exit(0);
}else{
for(int i = size - 1;i >= n - 1;i--){
data[i+1] = data[i];
}
data[n-1] = e;
size++;
}
}
DataType List::Delete(int n){
if(n < 1 || n > size){
cout << "删除位置不正确" << endl;
exit(0);
}else{
DataType e = data[n-1];
for(int i = n - 1;i < size-1;i++){
data[i] = data[i+1];
}
size--;
return e;
}
}
DataType List::GetElem(int n){
if(n < 1 || n > size){
cout << "位置不合理" << endl;
exit(0);
}else{
return data[n-1];
}
}
void List::PrintList(){
if(IsEmpty()){
cout << "空表" << endl;
exit(0);
}else{
for(int i = 0;i < size;i++){
cout << data[i] << " " ;
}
cout << endl;
}
}
int List::Locate(DataType e){
int i = 0;
while((i