线性表的基本使用
# include <iostream>
using namespace std;
# define MAX 100
typedef struct {
int *elem;
int length;
}SqList;
int InitList(SqList &l)//建立一个新的线性表
{
l.elem = new int[100];
if(!(l.elem))
{
return 0;
}
l.length = 0;
return 1;
}
int GetElem(SqList &l,int i,int e)//获取线性表中的元素
{
if((i>l.length)||(i<1))
{
return 0;
}
e = l.elem[i-1];
cout<<e<<endl;
return e;
}
int LocateElem(SqList l,int e)//在线性表中查找元素
{
int i;
for(i=0;i<l.length;i++)
{
if(l.elem[i]==e)
{
return i+1;
}
}
return 0;
}
int InsertElem(SqList &l,int i,int e)//向线性表中插入元素
{
int j;
if((i<1)||(i>l.length+1))
return 0;
if(l.length==MAX)
return 0;
for(j=l.length-1;j>=i-1;j--)
{
l.elem[j+1]=l.elem[j];
}
l.elem[i-1]=e;
l.length++;
return 1;
}
int DeleteList(SqList &l,int i)//删除线性表中的元素
{
if((i<1)||(i>l.length))
return 0;
for(int j=i;j<l.length-1;j++)
{
l.elem[j-1]=l.elem[j];
}
l.length--;
return 1;
}
int ListShow(SqList &l,int n)//输出线性表
{
int i;
for(i=0;i<n;i++)
{
cout<<l.elem[i]<<" ";
}
cout<<endl;
}
main()
{
int m,e,p,q;
SqList l;
InitList(l);
l.length=10;
cout<<"请插入10个元素"<<endl;
for(int i=0;i<10;i++)//建立测试
{
cin>>l.elem[i];
}
ListShow(l,10);//输出测试
cout<<"请输入需要获取第几个元素"<<endl;//获取元素测试
cin>>m;
p=GetElem(l,m,e);
cout<<"所获取的元素是"<<p<<endl;
cout<<"请输入需要查找的元素"<<endl;//查找元素测试
cin>>q;
cout<<"所查找的元素是第"<<LocateElem(l,q)<<"个"<<endl;
cout<<"请输入需要插入的元素"<<endl;
cin>>m;
cout<<"请输入需要插入到第几个位置"<<endl;//插入测试
cin>>p;
InsertElem(l,p,m);
ListShow(l,11);
cout<<"请输入需要删除第几个元素"<<endl;//删除测试
cin>>m;
DeleteList(l,m);
ListShow(l,9);
}