为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

查找子系统(1)

2021-01-31 2页 doc 64KB 43阅读

用户头像 个人认证

果果

大家好,我是一名中学老师

举报
查找子系统(1)《数据结构》实验报告实验名称:查找子系统日期:XXXX年XX月xx日得分:指导老师:XX专业:XXXX班次:XXXX班姓名:xxx学号:XXXXXXXXXXX1.实验内容:编写顺序查找、二分查找程序(二选一);编写建立二叉排序树的程序;编写在二叉排序树上的查找、插入、删除结点的程序;编写二叉排序树中序输出的程序(选做);设计一个选择式菜单。2.实验要求:通过查找实验理解查找的基本算法;熟悉各种查找方法的适用场合及平均查找长度;掌握静态查找和动态查找的区别;掌握顺序查找、二分查找的基本思想及其算法;掌握二叉排序树基本思想及其算法...
查找子系统(1)
《数据结构》实验实验名称:查找子系统日期:XXXX年XX月xx日得分:指导老师:XX专业:XXXX班次:XXXX班姓名:xxx学号:XXXXXXXXXXX1.实验内容:编写顺序查找、二分查找程序(二选一);编写建立二叉排序树的程序;编写在二叉排序树上的查找、插入、删除结点的程序;编写二叉排序树中序输出的程序(选做);设计一个选择式菜单。2.实验要求:通过查找实验理解查找的基本算法;熟悉各种查找方法的适用场合及平均查找长度;掌握静态查找和动态查找的区别;掌握顺序查找、二分查找的基本及其算法;掌握二叉排序树基本思想及其算法。3.程序代码:#include#include#defineSEARCHMAX100#defineN10voidSeqSearch(){inta[N],i,x,y;charch;printf("\n\t\t建立一个整数的顺序(以回车符为间隔,以-1结束):\n");for(i=0;i=0&&a[i]!=x)i--;if(i==-1)printf("\n\t\t抱歉!没有您要查找的数据。\n");elseprintf("\n\t\t您要查找的数据在第%d个位置上。\n",i+1);printf("\n\t\t继续查找输入Y,否则输入N:");scanf("%c",&ch);}}voidBinSearch(){intR[SEARCHMAX],i,k,low,mid,high,m,nn;charch;printf("\n\t\t建立递增有序的查找顺序表(以回车符间隔,以-1结束):\n");for(i=0;ik)high=mid-1;elseif(R[mid]high){printf("\n\t\t抱歉!没有您要查找的数据。\n");printf("\n\t\t共进行%d次比较。\n",m);if(R[mid]key==Key){printf("\n\t\t已经找到您输入的数据。\n");return;}p=(Keykey)?p->lchild:p->rchild;}printf("\n\t\t没有找到您输入的数据。\n");}voidInsBST(BSTree*T,KeyTypeKey){BSTNode*f,*p;p=(*T);while(p){if(p->key==Key){printf("\n\t\t树中已有%d,不需插入。\n",Key);return;}f=p;p=(Keykey)?p->lchild:p->rchild;}p=newBSTNode;p->key=Key;p->lchild=p->rchild=NULL;if((*T)==NULL)(*T)=p;elseif(Keykey)f->lchild=p;elsef->rchild=p;}voidDelBSTNode(BSTree*T,KeyTypeKey){BSTNode*parent=NULL,*p,*q,*child;p=*T;while(p){if(p->key==Key)break;parent=p;p=(Keykey)?p->lchild:p->rchild;}if(!p){printf("\n\t\t没有找到您要删除的结点。");return;}q=p;if(q->lchild&&q->rchild)for(parent=q,p=q->rchild;p->lchild;parent=p,p=p->lchild);child=(p->lchild)?p->lchild:p->rchild;if(!parent)*T=child;else{if(p==parent->lchild)parent->lchild=child;elseparent->rchild=child;if(p!=q)q->key=p->key;}delete(p);}voidInorderBST(BSTreeT){if(T!=NULL){InorderBST(T->lchild);printf("\t%d",T->key);InorderBST(T->rchild);}}voidmain(){intchoice;charch;ch='y';while(ch=='y'||ch=='Y'){printf("\n");printf("\n\t\t查找子系统");printf("\n\t\t********************************************");printf("\n\t\t*1------顺序查找*");printf("\n\t\t*2------二分查找*");printf("\n\t\t*3------二叉排序树*");printf("\n\t\t*0------返回*");printf("\n\t\t********************************************");printf("\n\t\t请选择菜单号(0--3):");scanf("%d",&choice);switch(choice){case1:SeqSearch();break;case2:BinSearch();break;case3:BTSearch();break;case0:ch='n';break;default:printf("\n\t\t菜单选择错误!请重新输入。");}}}运行结果:通过这十几周的学习还有实验练习,发现二叉树后面这几章的章节的内容,有很多部分跟二叉树有关联,最最早学的知识(线性表、栈、链表、二叉树)都是为最后面的几章最基础跟铺垫的,逐步难度增加上去的。
/
本文档为【查找子系统(1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索