数据结构之线性表基本操作

#include
#include
#include
#include
using namespace std;

#define maxsize 50
typedef struct
{
int data[maxsize];
int len;
}st;

void creatlist(st *&L,int a[],int n)
{
int i=0,k=0;
L=(st *)malloc(sizeof(st));
while(i<n)
{
L->data[k++]=a[i];
i++;
}
L->len=k;
}

void init(st *&L)
{
L=(st *)malloc(sizeof(st));
L->len=0;
}

void dislist(st *&L)
{
for(int i=0;ilen;i++)
{
cout<data[i]<<" ";
}
cout<<endl;
}

int listlen(st *&L)
{
return L->len;
}

bool listempty(st *&L)
{
return (L->len==0);
}

void destroy(st *&L)
{
free(L);
}

bool getelem(st *&L,int i,int e)
{
if(i<0||i>=L->len)
return false;
L->data[i];
return true;
}

int locateelem(st *&L,int e)
{
int i=0;
while(ilen&&L->data[i]!=e)
{
i++;
}
if(i>=L->len)
return 0;
else
return i+1;
}

bool listinsert(st *&L,int i,int e)
{
int j;
if(i<0||i>L->len)
{
return false;
}
i–;
for(j=L->len;j>i;j–)
L->data[j]=L->data[j-1];
L->data[i]=e;
L->len++;
return true;
}

bool listelete(st *&L,int i,int &e)
{
int j;
if(i<1||i>L->len)
{
return false;
}
i–;
e=L->data[i];
for(j=i;jlen-1;j++)
L->data[j]=L->data[j+1];
L->len–;
return true;
}

int main()
{
int e;
st *L;
init(L);
int n,a[1000];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
creatlist(L,a,n);
dislist(L);
cout<<listlen(L)<<endl;
if(listempty(L))
{
cout<<“0”<<endl;
}
else
{
cout<<“1”<<endl;
}
if(getelem(L,4,e))
cout<<“true”<<endl;
else
cout<<“false”<<endl;
cout<<locateelem(L,4)<<endl;
if(listinsert(L,4,656))
{dislist(L);}
if(listelete(L,4,e))
{
dislist(L);
}
destroy(L);
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值