List.h:
/*--List.h----------------------------------------------------------------------------
这个头文件定义了用于处理线性表的List数据类型
基本操作包括
构造函数
empty:检查线性表是否为空
insert:插入一个项
erase:删除一个项
display:输出列表
----------------------------------------------------------------------------------------*/
#include <iostream>
#ifndef LIST
#define LIST
const int CAPCITY=1024;
typedef int ElementType;
class List
{
public:
/************函数成员*************/*
/*******构造函数***********/
List();
bool empty() const;
void insert(ElementType item,int pos);
void erase(int pos);
void display() const;
private:
/*************数据成员***********/
int mySize;//当前线性表的大小
ElementType myArray[CAPCITY];//存储线性表的数组
};
#endif
/*--List.h----------------------------------------------------------------------------
这个头文件定义了用于处理线性表的List数据类型
基本操作包括
构造函数
empty:检查线性表是否为空
insert:插入一个项
erase:删除一个项
display:输出列表
----------------------------------------------------------------------------------------*/
#include <iostream>
#ifndef LIST
#define LIST
const int CAPCITY=1024;
typedef int ElementType;
class List
{
public:
/************函数成员*************/*
/*******构造函数***********/
List();
bool empty() const;
void insert(ElementType item,int pos);
void erase(int pos);
void display() const;
private:
/*************数据成员***********/
int mySize;//当前线性表的大小
ElementType myArray[CAPCITY];//存储线性表的数组
};
#endif
List.cpp
#include "List.h"
#include <iostream>
using namespace std;
List::List()
{
mySize=0;
}
bool List::empty() const
{
return mySize==0;
}
void List::display() const
{
for(int i=0;i<mySize;i++)
{
cout<<myArray[i]<<"\t";
}
}
void List::insert(ElementType item, int pos)
{
if(mySize == CAPCITY)
{
cout<<"空间不够,无法插入元素!"<<endl;
return ;
}
if(pos<0 || pos>mySize)
{
cout<<"插入位置错误!"<<endl;
return;
}
for(int i=mySize;i>pos;i--)
{
myArray[i]=myArray[i-1];
}
myArray[pos]=item;
mySize++;
}
void List::erase(int pos)
{
if(mySize==0)
{
cout<<"线性表长度为0,无法删除!"<<endl;
return;
}
if(pos<0 || pos>=mySize)
{
cout<<"删除位置错误!"<<endl;
return;
}
for(int i=pos;i<mySize;i++)
{
myArray[i]=myArray[i+1];
}
mySize--;
}
#include <iostream>
using namespace std;
List::List()
{
mySize=0;
}
bool List::empty() const
{
return mySize==0;
}
void List::display() const
{
for(int i=0;i<mySize;i++)
{
cout<<myArray[i]<<"\t";
}
}
void List::insert(ElementType item, int pos)
{
if(mySize == CAPCITY)
{
cout<<"空间不够,无法插入元素!"<<endl;
return ;
}
if(pos<0 || pos>mySize)
{
cout<<"插入位置错误!"<<endl;
return;
}
for(int i=mySize;i>pos;i--)
{
myArray[i]=myArray[i-1];
}
myArray[pos]=item;
mySize++;
}
void List::erase(int pos)
{
if(mySize==0)
{
cout<<"线性表长度为0,无法删除!"<<endl;
return;
}
if(pos<0 || pos>=mySize)
{
cout<<"删除位置错误!"<<endl;
return;
}
for(int i=pos;i<mySize;i++)
{
myArray[i]=myArray[i+1];
}
mySize--;
}
检测用的ListMain.cpp
#include <iostream>
#include "List.h"
using namespace std;
int main()
{
List intList;
cout<<"构造线性表"<<endl;
if(intList.empty())
{
cout<<"线性表:"<<"intList"<<"为空!"<<endl;
}
for(int i=0;i<9;i++)
{
cout<<"将"<<i<<"插入到位置"<<i/2<<"处"<<endl;
intList.insert(i,i/2);
intList.display();
cout<<endl;
}
cout<<"intList是否为空?"<<(intList.empty()?"YES":"NO")<<endl;
cout<<"在-1处插入元素!"<<endl;
intList.insert(0,-1);
cout<<"在10处插入元素!"<<endl;
intList.insert(0,10);
int index;
cout<<endl;
while(!intList.empty())
{
cout<<"请选择要删除元素的位置:"<<endl;
cin>>index;
intList.erase(index);
intList.display();
cout<<endl;
}
cout<<"intList 为空!"<<endl;
cout<<"插入"<<CAPCITY<<"个整数"<<endl;
for(int i=0;i<CAPCITY;i++)
intList.insert(i,i);
cout<<"再插入一个整数"<<endl;
intList.insert(-1,0);
}
#include "List.h"
using namespace std;
int main()
{
List intList;
cout<<"构造线性表"<<endl;
if(intList.empty())
{
cout<<"线性表:"<<"intList"<<"为空!"<<endl;
}
for(int i=0;i<9;i++)
{
cout<<"将"<<i<<"插入到位置"<<i/2<<"处"<<endl;
intList.insert(i,i/2);
intList.display();
cout<<endl;
}
cout<<"intList是否为空?"<<(intList.empty()?"YES":"NO")<<endl;
cout<<"在-1处插入元素!"<<endl;
intList.insert(0,-1);
cout<<"在10处插入元素!"<<endl;
intList.insert(0,10);
int index;
cout<<endl;
while(!intList.empty())
{
cout<<"请选择要删除元素的位置:"<<endl;
cin>>index;
intList.erase(index);
intList.display();
cout<<endl;
}
cout<<"intList 为空!"<<endl;
cout<<"插入"<<CAPCITY<<"个整数"<<endl;
for(int i=0;i<CAPCITY;i++)
intList.insert(i,i);
cout<<"再插入一个整数"<<endl;
intList.insert(-1,0);
}
转载于:https://blog.51cto.com/lp4083331/200018