各位高手帮我看看这个C++线性表的操作该怎么整啊?(插入算法没再主函数中调用)

2024-12-02 22:32:01
推荐回答(1个)
回答(1):

你好!!!
插入函数你在主函数里就没有写,怎么调用???其他还有点小错!!!
修改如下:

#include
#define M 20

typedef struct Linearlist
{
int elem[M];
int last;
}SeqList;

SeqList *InitList()
{
SeqList * L;
L=new SeqList;
L->last=-1;
return L;
}

int InsertList(SeqList * L,int i,int x)//插入函数
{
int j;
if(L->last==M-1)
{

cout<<"表满";
return(-1);

}

if(i<1||i>L->last+2)
{
cout<<"位置错"< return(0);
}

for(j=L->last;j>=i-1;j--)
L->elem[j+1]=L->elem[j];

L->elem[i-1]=x;
L->last++;
return(1);
}

int LocatList(SeqList * L,int x)//查找函数
{
int j=0;
while(j<=L->last&&L->elem[j]!=x)
j++;
return j;
}

void DeletList(SeqList * L,int rc)//删除函数
{
int i;
for(i=rc;ilast;i++)
L->elem[i]=L->elem[i+1];
L->last--;

}

int TravelList(SeqList * L)//显示数组中的元素
{
for(int i=0;ilast;i++)
cout<elem[i]<<" ";
cout<
return i;
}

void main()
{
SeqList *L;
L=InitList();
int x,m,i,j,flag;

cout<<"输入要数组的个数m(m<20):"< cin>>m;
cout<<"输入线性表的值:";

L->last=m;//设定实际元素的个数
for(i=0;i cin>>L->elem[i];

for(i=0;i cout<elem[i]<<" ";
cout< //这是插入函数部分
cout<<"请输入要插入数:";
cin>>x;
cout<<"请输入插入的位置:";
cin>>i;
InsertList( L, i, x);//插入函数

for(i=0;ilast ;i++)//注意不能使用i cout<elem[i]<<" ";
cout<
cout<<"输入要查找的数字"< cin>>x;
j=LocatList(L,x);
if(j==0)
cout<<"没有找到药查找的数字!!!"< else
{
cout<<"要查找的数字的位置:";
cout< }

cout<<"输入要删除的元素的下标:";//我想你输入的应该是下标吧
cin>>x;
DeletList(L,x);

for(i=0;ilast ;i++)//注意不能使用i cout<elem[i]<<" ";
cout<
TravelList(L);

}
测试:
输入要数组的个数m(m<20):
6
输入线性表的值:1 2 3 4 5 6
1 2 3 4 5 6
请输入要插入数:7
请输入插入的位置:2
1 7 2 3 4 5 6
输入要查找的数字
5
要查找的数字的位置:5
输入要删除的元素的下标:5
1 7 2 3 4 6
1 7 2 3 4 6
Press any key to continue

输入要数组的个数m(m<20):
6
输入线性表的值:1 2 3 4 5 6
1 2 3 4 5 6
请输入要插入数:7
请输入插入的位置:10
位置错1 2 3 4 5 6
输入要查找的数字
3
要查找的数字的位置:2
输入要删除的元素的下标:5
1 2 3 4 5
1 2 3 4 5
Press any key to continue