欢迎来到天天文库
浏览记录
ID:40247167
大小:875.00 KB
页数:70页
时间:2019-07-29
《数据结构算法——Visual C++ 6.0程序集 第8章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构算法VisualC++6.0程序集侯识忠等编著中国水利水电出版社第八章查找8、0二分查找法(递归调用)//二分查找法(递归调用)erfenfa1.cpp#include#include#includedoublea[10]={1.1,1.3,1.5,1.7,1.9,2.1,2.3,2.5,2.7,2.9};voidbinsrch(ints,intr,doublex){intm;m=(s+r)/2;if(a[m]==x){cout<2、elseif(s>r){cout<a[m])binsrch(m+1,r,x);elsebinsrch(s,m-1,x);}单击此处运行程序voidmain(){cout<<"erfenfa1运行结果:";doublex=2.3;ints=0,r=9;cout<<"输入x:";cin>>x;cout<<"查找结果:";binsrch(s,r,x);cin.get();cin.get();}8、1二分查找法(非递归调用)#3、include#include#includevoidbinsrch(inta[],intn,intx){intmid,top=0,bot=n-1,find=0,m=0;do{m=m+1;mid=(top+bot)/2;if(a[mid]==x){cout<a[mid])top=mid+1;}while((top<=bot)&&(find==0));if(4、find==0)cout<>x;cout<<"查找结果:";binsrch(b,n,x);cin.get();cin.get();}8、2二叉排序树的类定义与实现//二叉排序树BinSortT.cpp#include5、h>#include#include//二叉树的链式存储结构表示typedefstructBinaryTree{intdata;structBinaryTree*l;structBinaryTree*r;}*BiTree,BiNode;//二叉树的类定义classBiSearchT{private:BiTreeroot;public://构造函数BiSearchT():root(NULL){}//构造二叉链表表示的二叉树TintCreateSubTree(BiTree&t,int*all,int6、i);//先序遍历二叉树TintPreOrderTraverse(BiTreet,int(*Visit)(inte));//中序遍历二叉树TintInOrderTraverse(BiTreet,int(*Visit)(inte));//插入算法intInsertBST(BiTree*t,inte);//在二叉排序树中删除一个节点voidDelete(BiTree*p);//二叉排序树的删除boolDeleteBST(BiTree*t,intkey);//二叉排序树上的查找递归算法boolSearchBST(BiTreet,intkey,7、BiTreef,BiTree*p);};//二叉排序树的类实现//构造二叉链表表示的二叉树TintBiSearchT::CreateSubTree(BiTree&t,int*all,inti){if((all[i]==0)8、9、i>16){t=NULL;return1;}t=(BiNode*)malloc(sizeof(BiNode));if(t==NULL)return0;t->data=all[i];CreateSubTree(t->l,all,2*i);CreateSubTree(t->r,all,2*i+1);}//先序遍历二叉树10、TintBiSearchT::PreOrderTraverse(BiTreet,int(*Visit)(intd)){if(t){if(Visit(t->data))if(PreOrderTraverse(
2、elseif(s>r){cout<a[m])binsrch(m+1,r,x);elsebinsrch(s,m-1,x);}单击此处运行程序voidmain(){cout<<"erfenfa1运行结果:";doublex=2.3;ints=0,r=9;cout<<"输入x:";cin>>x;cout<<"查找结果:";binsrch(s,r,x);cin.get();cin.get();}8、1二分查找法(非递归调用)#
3、include#include#includevoidbinsrch(inta[],intn,intx){intmid,top=0,bot=n-1,find=0,m=0;do{m=m+1;mid=(top+bot)/2;if(a[mid]==x){cout<a[mid])top=mid+1;}while((top<=bot)&&(find==0));if(
4、find==0)cout<>x;cout<<"查找结果:";binsrch(b,n,x);cin.get();cin.get();}8、2二叉排序树的类定义与实现//二叉排序树BinSortT.cpp#include5、h>#include#include//二叉树的链式存储结构表示typedefstructBinaryTree{intdata;structBinaryTree*l;structBinaryTree*r;}*BiTree,BiNode;//二叉树的类定义classBiSearchT{private:BiTreeroot;public://构造函数BiSearchT():root(NULL){}//构造二叉链表表示的二叉树TintCreateSubTree(BiTree&t,int*all,int6、i);//先序遍历二叉树TintPreOrderTraverse(BiTreet,int(*Visit)(inte));//中序遍历二叉树TintInOrderTraverse(BiTreet,int(*Visit)(inte));//插入算法intInsertBST(BiTree*t,inte);//在二叉排序树中删除一个节点voidDelete(BiTree*p);//二叉排序树的删除boolDeleteBST(BiTree*t,intkey);//二叉排序树上的查找递归算法boolSearchBST(BiTreet,intkey,7、BiTreef,BiTree*p);};//二叉排序树的类实现//构造二叉链表表示的二叉树TintBiSearchT::CreateSubTree(BiTree&t,int*all,inti){if((all[i]==0)8、9、i>16){t=NULL;return1;}t=(BiNode*)malloc(sizeof(BiNode));if(t==NULL)return0;t->data=all[i];CreateSubTree(t->l,all,2*i);CreateSubTree(t->r,all,2*i+1);}//先序遍历二叉树10、TintBiSearchT::PreOrderTraverse(BiTreet,int(*Visit)(intd)){if(t){if(Visit(t->data))if(PreOrderTraverse(
5、h>#include#include//二叉树的链式存储结构表示typedefstructBinaryTree{intdata;structBinaryTree*l;structBinaryTree*r;}*BiTree,BiNode;//二叉树的类定义classBiSearchT{private:BiTreeroot;public://构造函数BiSearchT():root(NULL){}//构造二叉链表表示的二叉树TintCreateSubTree(BiTree&t,int*all,int
6、i);//先序遍历二叉树TintPreOrderTraverse(BiTreet,int(*Visit)(inte));//中序遍历二叉树TintInOrderTraverse(BiTreet,int(*Visit)(inte));//插入算法intInsertBST(BiTree*t,inte);//在二叉排序树中删除一个节点voidDelete(BiTree*p);//二叉排序树的删除boolDeleteBST(BiTree*t,intkey);//二叉排序树上的查找递归算法boolSearchBST(BiTreet,intkey,
7、BiTreef,BiTree*p);};//二叉排序树的类实现//构造二叉链表表示的二叉树TintBiSearchT::CreateSubTree(BiTree&t,int*all,inti){if((all[i]==0)
8、
9、i>16){t=NULL;return1;}t=(BiNode*)malloc(sizeof(BiNode));if(t==NULL)return0;t->data=all[i];CreateSubTree(t->l,all,2*i);CreateSubTree(t->r,all,2*i+1);}//先序遍历二叉树
10、TintBiSearchT::PreOrderTraverse(BiTreet,int(*Visit)(intd)){if(t){if(Visit(t->data))if(PreOrderTraverse(
此文档下载收益归作者所有