实验6 查找和排序 (2)(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六、七:查找、排序算法的应用

班级 10511 学号 20103051114 姓名高卫娜

一、实验目的

1 掌握查找的不同方法,并能用高级语言实现查找算法。

2 熟练掌握顺序表和有序表的顺序查找和二分查找方法。

3 掌握排序的不同方法,并能用高级语言实现排序算法。

4 熟练掌握顺序表的选择排序、冒泡排序和直接插入排序算法的实现。

二、实验内容

1 创建给定的顺序表。表中共包含八条学生信息,信息如下:

学号姓名班级C++ 数据结构

1 王立03511 85 76

2 张秋03511 78 88

3 刘丽03511 90 79

4 王通03511 7

5 86

5 赵阳03511 60 71

6 李艳03511 58 68

7 钱娜03511 95 89

8 孙胜03511 45 60

2 使用顺序查找方法,从查找表中查找姓名为赵阳和王夏的学生。如果查找成功,则显示该生的相关信息;如果查找不成功,则给出相应的提示信息。

3 使用二分查找方法,从查找表中查找学号为7和12的学生。如果查找成功,则显示该生的相关信息;如果查找不成功,则给出相应的提示信息。(注意:创建静态查找表时必须按学号的从小到大排列!)

4 使用直接插入排序方法,对学生信息中的姓名进行排序。输出排序前和排序后的学生信息表,验证排序结果。

5 使用直接选择排序方法,对学生信息中的C成绩进行排序。输出排序前和排序后的学生信息表,验证排序结果。

6 使用冒泡排序方法,对学生信息中的数据结构成绩进行排序。输出排序前和排序后的学生信息表,验证排序结果。

7 编写一个主函数,将上面函数连在一起,构成一个完整程序。

8 将实验源程序调试并运行。

三、实验结果

源程序代码为:

#include

#include

#include

#define MAXSIZE 10

typedef char KeyType1;

typedef int KeyType2;

typedef struct

{

//学号姓名班级C++ 数据结构

KeyType1 name[20];

KeyType2 xuehao;

KeyType1 Class[20];

double score[2];

} DataType;

typedef struct

{

DataType data[MAXSIZE+1];

int len;

} SeqList;

//顺序表的创建

void create(SeqList &L)

{

cout<<"请输入顺序表的大小:"<

cin>>L.len;

cout<<"请输入顺序表中八条学生信息(学号姓名班级C++ 数据结构):"<

for(int i=1;i<=L.len;i++)

{

cin>>L.data[i].xuehao;

cin>>L.data[i].name;

cin>>L.data[i].Class;

cin>>L.data[i].score[0];

cin>>L.data[i].score[1];

}

}

void Input(SeqList &L)

{

for(int i=1;i<=L.len;i++)

{

cin>>L.data[i].xuehao;

cin>>L.data[i].name;

cin>>L.data[i].Class;

cin>>L.data[i].score[0];

cin>>L.data[i].score[1];

}

}

//顺序表的显示

void print(SeqList L)

{

cout<<"学号姓名班级C++ 数据结构"<

if(L.len==0)

{

cout<<"该表是空表!"<

return;

}

for(int i=1;i<=L.len;i++)

{

cout<<" "<

cout<

}

}

//顺序查找方法从查找表中查找姓名为赵阳和王夏的学生

void S_Search(SeqList L)

{

char na[20];

cout<<"请输入要查找的同学的姓名:"<

cin>>na;

strcpy(L.data[0].name,na); //监视哨

int i=L.len;

while(strcmp(L.data[i].name,na)>0||strcmp(L.data[i].name,na)<0)

i--;

if(i>0)

{

cout<<"您要查找的学生的信息:"<

cout<<" "<

cout<

}

if(i<=0)

{

相关文档
最新文档