List.h
#ifndef LIST_H_INCLUDED
#define LIST_H_INCLUDED
typedef int Item;
class List
{
private:
enum {ArSize=10};
Item list[ArSize];
int length; //length表示链表的有效长度
int ListSize; //ListSize表示的是链表的空间
public:
List();
List(Item ar[],int n);
void IncreaseItem(Item e);
void isEmpty() const;
void isFull() const;
void visit() const;
void ListLength() const;
~List();
};
#endif // LIST_H_INCLUDED
List.cpp
#include "List.h"
#include <iostream>
//创建没有任何元素的空表
List::List()
{
length=0; //空表长度为0
ListSize=ArSize; //列表的初始存储空间
std::cout<<"列表创建成功!\n";
}
//创建存储有多个某种类型元素的列表
List::List(Item ar[],int n)
{
for(int i=0; i<n; i++)
{
list[i]=ar[i];
}
length=n;
ListSize=ArSize;
std::cout<<"列表创建成功!\n";
}
void List::isEmpty() const
{
if(length==0)
std::cout<<"列表为空\n";
else
std::cout<<"列表不空\n";
}
void List::isFull() const
{
if(length==ListSize)
std::cout<<"列表已满\n";
else
std::cout<<"列表未满\n";
}
void List::ListLength() const
{
std::cout<<"列表的元素个数为"<<length<<"个。\n";
}
void List::IncreaseItem(Item e)
{
if(length==ListSize)
std::cout<<"抱歉,列表已满!\n";
else
list[length++]=e;
}
void List::visit() const
{
using std::cout;
using std::endl;
if(length==0)
cout<<"列表为空!\n";
else
{
cout<<"列表的元素为:\n";
for(int i=0; i<length; i++)
{
cout<<list[i]<<"; ";
}
cout<<endl;
}
}
List::~List()
{
}
useList.cpp
#include "List.h"
#include <iostream>
int main(void)
{
using namespace std;
cout<<"test #1:创建一个空表\n";
List Lnull;
cout<<"查看列表元素\n";
Lnull.visit();
cout<<"\ntest #2:创建一个存储有多个元素的列表\n";
cout<<"请输入列表元素个数:\n";
int num;
cin>>num;
Item array[num];
cout<<"请输入列表元素:\n";
for(int i=0; i<num; i++)
cin>>array[i];
List L(array,num);
L.visit();
cout<<"******************************************\n"
"* *\n"
"* 请输入您需要的操作 *\n"
"* *\n"
"* 1 判断列表是否为空 *\n"
"* 2 判断列表是否已满 *\n"
"* 3 计算列表元素个数 *\n"
"* 4 在列表中插入一个元素 *\n"
"* 5 查看列表元素 *\n"
"* 6 退出 *\n"
"* *\n"
"******************************************\n";
char ch;
cin>>ch;
while(ch!='6')
{
switch(ch)
{
case '1':
L.isEmpty();
break;
case '2':
L.isFull();
break;
case '3':
L.ListLength();
break;
case '4':
cout<<"请输入要插入的元素:";
Item elem;
cin>>elem;
L.IncreaseItem(elem);
break;
case '5':
L.visit();
break;
default:
cout<<"\a您的输入有误,请输入数字1~6\n";
}
cout<<"\n******************************************\n"
"* *\n"
"* 请输入您需要的操作 *\n"
"* *\n"
"* 1 判断列表是否为空 *\n"
"* 2 判断列表是否已满 *\n"
"* 3 计算列表元素个数 *\n"
"* 4 在列表中插入一个元素 *\n"
"* 5 查看列表元素 *\n"
"* 6 退出 *\n"
"* *\n"
"******************************************\n";
cin>>ch;
}
cout<<"感谢你的使用,再见!\n";
cin.get();
return 0;
}