实验五-查找和排序实验报告(共4页)_第1页
实验五-查找和排序实验报告(共4页)_第2页
实验五-查找和排序实验报告(共4页)_第3页
实验五-查找和排序实验报告(共4页)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上实验五 查找和排序1、实验目的1. 掌握顺序查找的基本方法2. 掌握简单排序和二分法查找的算法。2能运用线性表的查找方法解决实际问题。2、实验内容1、给出在一个无序表A,采用顺序查找算法查找值为x的元素的算法2、给出一个无序表B,采用简单排序方法使该表递增有序,并采用二分查找算法查找值为x的元素的算法。3、实验步骤(1)仔细分析实验内容,给出其算法和流程图;(2)用C语言实现该算法;(3)给出测试数据,并分析其结果;(4)在实验报告册上写出实验过程。4、实验报告要求实验报告要求书写整齐,步骤完整,实验报告格式如下:1、实验目的2、实验设备3、实验步骤4、实验内容5、实

2、验结果(结论)1.折半查找算法描述如下: int Search_Bin(SSTable ST,KeyType key) low=1;high=ST.length; while(low<=high) mid=(low+high)/2; if EQ(key,ST.elemmid.key) return mid; else if LT(key,ST.elemmid.key) high=mid -1;else low=mid +1 ; return 0; /Search_Bin; 2.顺序查找算法描述如下:typedef struct ElemType *elem;int length;SSTa

3、ble; 顺序查找:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录;反之,查找不成功。int Search_Seq(SSTable ST,KeyType key)ST.elme0.key=key; for(i=ST.length; !EQ(ST.elemi.key,key); -i); return i; (3)写出源程序清单(加适当的注释)。#include "stdio.h"typedef struct BiTNode int data; struct BiTNode *lchild,*rchil

4、d;BiTNode,*BiTree;void insert(BiTree *bt,BiTree s) /在二叉树中插入一个新节点,并将较大数至于右子树,较小数至于左子树if (*bt=NULL) *bt=s;else if (s->data<=(*bt)->data)insert(&(*bt)->lchild),s);else if (s->data>(*bt)->data)insert(&(*bt)->rchild),s);void ZXBL(BiTree bt) /中序遍历,二叉树已排好顺序if(bt!=NULL)ZXBL (

5、bt->lchild);printf("%5d",bt->data);ZXBL (bt->rchild);BiTree select (BiTree bt,int key) /在二叉排序树bt中查找关键字等于给定值的结点是否存在if(bt=NULL) return NULL;else if(bt->data=key) return bt;else if(key<bt->data) return select (bt->lchild,key);else return select (bt->rchild,key);void ma

6、in() char ch;int key;BiTree s,bt=NULL;int i=0; /建立一个二叉树,元素从键盘输入,直到回车为止printf("n请输入要一列整数,以空格隔开,回车结束. n");while(ch!='n')scanf("%d",&key);s=(BiTree)malloc(sizeof(BiTNode);s->data=key;s->lchild=s->rchild=NULL;insert (&bt,s);ch=getchar();printf("n排序后: n&q

7、uot;); ZXBL (bt);/中序遍历while(1)printf("n输入你要查找的关键字: ");scanf("%d",&key);s=select(bt,key);if(s!=NULL) printf("%d 查找成功!",s->data);else printf("未发现你输入的数!");printf("n再次查找?(Y/N): ");ch=getch();if(ch!='y'&&ch!='Y') return 0;(4

8、)调试说明。包括上机调试的情况、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。1,问题: malloc无法识别.解决: 百度得知缺少头文件,导入stdlib.h后解决.2,问题: 输入后程序无响应.解决: scanf中缺少&,添加后解决.3,问题: 结果显示不正确,为ASCII码解决: 输出改为”%c”.(5)测试结果及说明。对完成所要执行的功能情况分析。(1)(2)五实验体会: 通过本次排序和查找的练习,初步掌握了其基本概念和操作。查找的基本概念: 查找表: 是由同一类型的数据元素(或记录)构成的集合。 查找表的操作: 1、查询某个“特定的”数据元素是否在查找表中。 2、检索某个“特定的”数据元素的各种属性。 3、在查找表中插入一个数据元素; 4、从查找表中刪去某个数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论