北理工数据结构作业5Word下载.docx
- 文档编号:19444054
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:9
- 大小:135.78KB
北理工数据结构作业5Word下载.docx
《北理工数据结构作业5Word下载.docx》由会员分享,可在线阅读,更多相关《北理工数据结构作业5Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
3):
abcdefg
high↑low
↑mid
此时mid指向的元素为e,查找成功;
(2)查f
f
说明f若存在,必在区间[mid+1,high]
令low=mid+1;
此时mid指向的元素为f,查找成功;
(3)查g
↑low↑mid↑high
g
说明g若存在,必在区间[mid+1,high]
此时f<
abcdefg
此时mid指向的元素为g,查找成功;
2、请将折半查找的算法改写为递归算法。
intBinSearch(SSTables;
intlow,inthigh;
keyTypeK)
{
if(low>
high)return0;
else{
mid=(low+high)/2;
switch{
cases.elem[mid].key<
K:
returnBinSearch(s,mid+1,high,K);
break;
cases.elem[mid].key==K:
returnmid;
cases.elem[mid].key>
returnBinSearch(s,low,mid-1,K);
default:
;
}//switch
}//else
}//BinSearch
3、编写判别给定二叉树是否为二叉排序树的算法。
假设此二叉树是以二叉链表的形式存储的,且树中关键字均不同。
typedefstructBiTNode{
TElemTypedata;
structBiTNode*lchild,*rchild;
}BiTNode,*BiTree;
intflag=1,last=0;
intBiSortTree(BitreeT)//判断二叉树T是否二叉排序树,是则返回1,否则返回0
if(T->
lchild&
&
flag)BiSortTree(T->
lchild);
data<
last)flag=0;
//将T->
data与其中序前驱last比较大小
last=T->
data;
rchild&
rchild);
returnflag;
}//BiSortTree
实验四
输入10个数,从插入排序、快速排序、选择排序三类算法中各选一种编程实现。
程序如下(均为.cpp)
插入排序:
#include<
stdio.h>
#defineMAXSIZE100
#defineERROR0
typedefstruct{
intR[MAXSIZE+1];
intlength;
}SqList;
voidInsertSort(SqList&
L)
{//对顺序表L作直接插入排序
inti,j;
for(i=2;
i<
=L.length;
++i)
if(L.R[i]<
L.R[i-1])
{
L.R[0]=L.R[i];
L.R[i]=L.R[i-1];
for(j=i-2;
L.R[0]<
L.R[j];
--j)
L.R[j+1]=L.R[j];
L.R[j+1]=L.R[0];
}
}
main()
inti,n;
SqListL;
printf("
inputtotalnumberofthesequence:
\n"
);
scanf("
%d"
&
n);
if(n<
=0||n>
MAXSIZE)
nmustmorethan0andlessthan%d.\n"
MAXSIZE);
returnERROR;
L.length=n;
inputtheelements:
for(i=1;
=n;
i++)
L.R[i]);
InsertSort(L);
\nSequenceaftersort:
%4d"
L.R[i]);
快速排序:
intPartition(SqList&
L,intlow,inthigh){
intp;
L.R[0]=L.R[low];
p=L.R[low];
while(low<
high){
high&
L.R[high]>
=p)
--high;
L.R[low]=L.R[high];
L.R[low]<
++low;
L.R[high]=L.R[low];
L.R[low]=L.R[0];
returnlow;
voidQSort(SqList&
if(low<
p=Partition(L,low,high);
QSort(L,low,p-1);
QSort(L,p+1,high);
voidQuickSort(SqList&
L){
QSort(L,1,L.length);
QuickSort(L);
选择排序:
voidSelectSort(SqList&
inti,j,k;
L.length;
k=i;
for(j=i+1;
j<
j++)
if(L.R[j]<
L.R[k])
k=j;
if(k!
=i)
{
L.R[i]=L.R[k];
L.R[k]=L.R[0];
}
SelectSort(L);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北理工 数据结构 作业