您的位置:首页 > 理论基础 > 数据结构算法

链表的相关操作查找插入删除(c++ 数据结构)

2010-10-07 19:46 633 查看
#include <iostream>

#include <iomanip>

#include<string>

using namespace std;

typedef struct

{char name[20];

int num;

float score[3];

}stu;

int main()

{void intput(stu array[],int n);

void display(stu array[],int n);

void locate(stu array[],int k);

void insert(stu array[],stu m,int n,int f);

void dele(stu array[],int m,int n);

cout<<"请按下列提示进行操作"<<endl;

cout<<"1"<<"查找操作"<<" "<<"2"<<"插入操作"<<endl;

cout<<"3"<<"删除操作"<<" "<<endl;

cout<<"请输入要输入的学生人数n:";

int n,m,k,j,i;

stu a[10];

cin>>n;

intput(a,n);

cout<<endl<<endl<<endl;

display(a,n);

cout<<endl;

for(int q=0;q<3;q++)

{

cout<<"................选择你想进行的操作.................."<<endl;

cin>>m;

if(m==1)

{ cout<<"输入你想查找的学号:"<<endl;

cin>>k;

locate(a,k);

cout<<"是否继续操作(Y/N)?"<<endl;

char l;

cin>>l;

if(l=='Y')

continue;

else

break;}

else if(m==2)

{cout<<"输入你想插入的位置:"<<endl;

cin>>j;

stu m;

cout<<"你想插入的学生信息:"<<endl;

cin>>m.name>>m.num>>m.score[0]>>m.score[1]>>m.score[2];

insert(a,m,j,n);

cout<<endl<<endl;

cout<<"插入后的信息为:"<<endl;

display(a,n+1);

cout<<"是否继续操作(Y/N)?"<<endl;

char l;

cin>>l;

if(l=='Y')

continue;

else

break;}

else

{cout<<"输入你想删除的位置:"<<endl;

cin>>i;

dele(a,i,n);

display(a,n-1);

cout<<"是否继续操作(Y/N)?"<<endl;

char l;

cin>>l;

if(l=='Y')

continue;

else

break;}

}

return 0;

}

/*输入函数*/

void intput(stu array[],int n)

{cout<<"请输入相应的学生的成绩信息:"<<endl;

for(int i=0;i<n;i++)

{cin>>array[i].name;

cin>>array[i].num;

cin>>array[i].score[0];

cin>>array[i].score[1];

cin>>array[i].score[2];}

}

/*输出函数*/

void display(stu array[], int n)

{for(int i=0;i<n;i++)

{cout<<array[i].name<<" "<<array[i].num<<" ";

cout<<array[i].score[0];

cout<<" "<<array[i].score[1]<<" ";

cout<<array[i].score[2]<<endl;}

}

/*查找函数*/

void locate(stu array[],int k)

{int i=0;

if(k<0||k>10)

cout<<"你的输入有误"<<endl;

while(array[i].num!=k)

i++;

cout<<array[i].name<<" ";

cout<<array[i].num<<" ";

cout<<array[i].score[0]<<" ";

cout<<array[i].score[1]<<" ";

cout<<array[i].score[2]<<" ";

cout<<endl;

}

/*插入函数*/

void insert(stu array[],stu m,int n,int f)

{

for(int i=f;i>n;i--)

{strcpy(array[i].name,array[i-1].name);

array[i].num=array[i-1].num;

array[i].score[0]=array[i-1].score[0];

array[i].score[1]=array[i-1].score[1];

array[i].score[2]=array[i-1].score[2];

}

strcpy(array
.name,m.name);

array
.num=m.num;

array
.score[0]=m.score[0];

array
.score[1]=m.score[1];

array
.score[2]=m.score[2];

}

/*删除函数*/

void dele(stu array[],int m,int n)

{for(int i=m;i<n;i++)

{strcpy(array[i-1].name,array[i].name);

array[i-1].num=array[i].num;

array[i-1].score[0]=array[i].score[0];

array[i-1].score[1]=array[i].score[1];

array[i-1].score[2]=array[i].score[2];

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐