📄 list.cpp
字号:
#include <iostream.h>
struct lists
{
int l[50];
int len;//线性表的当前长度
};
void init(lists&l) //初始化线性表
{
l.len=0;
}
void numberinsertlist(lists&l,int item,int rc) //向线性表指定位置插人元素
{
if (rc<1 || rc>l.len+1)
{
cout << "所给插入元素的位置编号无效!" <<endl;
exit(1);
}
for (int i=l.len-1;i>=rc-1;i--)
l.l[i+1]=l.l[i];
l.l[rc-1]=item;
l.len++;
}
bool deletelist(lists&l,int item) //删除指定元素值的线性表记录
{
int i,j;
if (l.len==0) return false; //判定线性表是否为空
//顺序查找待删除的元素
for (i=0;i<l.len;i++)
if (l.l[i]==item) break;
//删除失败返回假
if (i==l.len) return false;
//从下标i+1元素至表尾元素均前移一个位置
for (j=i+1;j<l.len;j++)
l.l[j-1]=l.l[j];
//线性表长度减1后返回真
l.len--;
return true;
}
void deletelist2(lists&l,int rc) //删除指定位置的线性表记录
{
if (rc<1 || rc>l.len)
{
cout << "所给删除元素的位置编号无效!" <<endl;
exit(1);
}
for (int j=rc+1;j<l.len;j++)
l.l[j-1]=l.l[j];
l.len--;
}
bool findlist(lists&l,int item) //查找线性表中的元素
{
int i;
for (i=0;i<l.len;i++)
if (l.l[i]==item) break;
if (i==l.len) return false;
return true;
}
void outputlist(lists&l) //输出线性表
{
cout<<"输出结果为: ";
for (int i=0;i<l.len;i++)
cout<<l.l[i]<<' ';
cout<<endl;
}
main()
{
struct lists s;
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i,j,k;
init(s); //初始化线性表
cout<<"\n初始化线性表\n";
for (i=0;i<10;i++)
{
s.len++;
s.l[i]=a[i];
}
outputlist(s);
cout<<"\n*向线性表的指定位置插入元素*\n";
cout<<"\n请输入需要插入的元素:";
cin>>j;
cout<<"\n请输入需要插入的位置:";
cin>>k;
numberinsertlist(s,j,k);
outputlist(s);
cout<<"\n*删除线性表中的指定元素*\n";
cout<<"\n请输入需要删除的元素:";
cin>>j;
if (deletelist(s,j))
cout<<"删除成功!"<<endl;
else
cout<<"删除失败!该线性表中没有该元素!"<<endl;
outputlist(s);
cout<<"\n*删除线性表中的指定位置的元素*\n";
cout<<"\n请输入需要删除元素的位置:";
cin>>j;
deletelist2(s,j);
outputlist(s);
cout<<"\n*查找线性表中的元素*\n";
cout<<"\n请输入需查找的元素: ";
cin>>j;
if (findlist(s,j))
cout<<"线性表查找成功!";
else
cout<<"线性表查找失败!"<<"表中没有元素"<<j<<endl;
outputlist(s);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -