代码:
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#define MAXSIZE 1100
using namespace std;
/*
线性表的实现
1.插入//ok
2.删除//ok
3.在尾部增加//ok
4.从尾部弹出//ok
5.是否为空//ok
6.查找//ok
7.根据下标获取线性表中的值//ok
*/
//线性表的数据结构
class LineTable{
private:
int date[MAXSIZE];
int maxsize;//最大容量
int size;//当前元素个数
public:
LineTable()
{
maxsize=MAXSIZE;
size=0;
}
bool push_back(int val)
{
if(size==MAXSIZE)
return 0;//插入失败
date[size++]=val;
return 1;
}
bool pop_back(int &val)//从尾部弹出并返回该值
{
if(!size)
return 0;
val=date[--size];
return 1;
}
bool empty()
{
if(!size)
return 1;
return 0;
}
bool find(int val,int &index)
{
for(int i=0;i<size;++i)
{
if(date[i]==val)
{
index=i;
return 1;
}
}
return 0;
}
bool erase(int sub,int &val)//
{
if(sub>=0&&sub<size)
{
for(int i=sub;i<size-1;++i)
date[i]=date[i+1];
--size;
return 1;
}
return 0;
}
bool index(int sub,int &val)
{
if(sub<size&&sub>=0)
{
val=date[sub];
return 1;
}
return 0;
}
bool insert(int index,int val)
{
if(size<MAXSIZE&&index>=0&&index<size)
{
for(int i=size-1;i>=index;--i)
date[i+1]=date[i];
return 1;
++size;
}
return 0;;
}
bool print()
{
for(int i=0;i<size;++i)
printf("%d%c",date[i],i==size-1?'
':' ');
return 1;
}
};
int main()
{
LineTable dch;
int val;
dch.push_back(1);
dch.push_back(2);
dch.push_back(3);
dch.print();
dch.erase(1,val);
dch.print();
}
改进:加异常处理可好