?? 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 + -