- 19
- 0
- 约1.31万字
- 约 12页
- 2017-06-07 发布于湖北
- 举报
数据结构--例题剖析
!!对给定关键字序号j(1jn),要求在无序记录A[1..n]中找到关键字从小到大排在第j位上的记录,写一个算法利用快速排序的划分思想实现上述查找。(要求用最少的时间和最少的空间)
例如:给定无序关键字{7,5,1,6,2,8,9,3},当j=4时,找到的关键字应是5。
int partition(RecType A[], int 1, int n)
{
int i=1,j=n;x=A[i].key;
i=1;
while(ij)
{
while(ij A[j].key=x) j--;
if(ij) A[i++]=A[j];
while(ij A[i].key=x) i++;
if(ij) A[j--]=A[i];
}
return i;
}
void Find_j(RecType A[],int n,int j) n为数组长度
{
i=partition (A,1,n);
while(i!=j)
if(ij) i=partition(A,i+1,n); ∥在后半部分继续进行划分
else i=partition(A,1,i-1); ∥在前半部分继续进行划分
}
因装填因子为0.7,有7个元素,故哈希表长m=7/0.7=10构造的哈希表如下:
散列地址 0 1 2 3 4 5 6 7 8 9
关键字 7 14 8 11 30 18 9
比较次数 1 2 1 1 1 3 3
答:ASL成功=1/7*(1*4+2*1+3*2)=12/7,失败=1/7*(3+2+1+2+1+5+4)=18/7
设图的顶点只是编号1――n,边的信息是有(用1表示)或无(用0表示),这时可用邻接矩阵表示图的存储结构。请编写算法建立无向图的邻接矩阵的存储结构
void creatgraph(int M[][],int n,int e) //设有n个顶点e条边
{
int i,j;
for (i=1;i=n;i++)
for(j=1;j=n;j++)
M[i][j]=0;
for (i=1;i=e;i++)
{ cinij;
M[i][j]=1; M[j][i]=1;
}
}
在根指针t所指二叉排序树中递归查找某关键字等于k的数据元素
BSTree SearchBST1(BSTree t,keyType k)?
{
if(!t||k==t-key) return(t);
? else if(kt-key) return(SearchBST1(t-lchild,k));
? else return(SearchBST1(t-rchild,k));??
}?
写出快速排序中一趟划分的算法。
int partition(int R[],int s,int t) //s和t是数组的低下标和高下标
{
int i=s,j=t,x=R[i].key;
while(ij)
{
while(ij R[j].key=x)
j--;
R[i]=R[j];
while(ij R[i].key=x)
i++;
R[j]=R[i];
}
r[i]=x;
return i;
}
要求完全利用循环队列中的元素空间,设置一个标志域tag,并以tag的值是0或1来区分尾指针和头指针相同时的队列状态是“空”还是“不空”请编写与此结构相对应的出队算法。相关类型定义如下:
void?QueueOut(CycQueue cq);
{
if(cq.tag==0) cout队列为空\n;
??? else
{
cq.front=( cq.front+1) % m;
??????????????if(cq.front== cq.rear)
cq.tag=0;? //空队列
}
}
!!设n是非负整数,下面程序片段的时间复杂度是(O(log2n)? )。
?x=2; while(xn/2) x=2*x;
已知二叉树的二叉链表存储表示如下,试编写求二叉树深度的算法
int Height(BiTree bt)
{
int hl,hr;
if(bt==null) return(0);????? //空二叉树深度为0
else
{
hl=Height(bt-lchild); ?//左子树的深度
hr=Height(bt-rchild);? //右子树的深度
if(hlhr) return(hl+1); //二叉树的深度
您可能关注的文档
最近下载
- 2025《麻江县蓝莓产业发展现状调研分析报告》4900字.docx
- 2026年国网安全管理方案.docx VIP
- 2025年北京师范大学学科教学培养方案 .pdf VIP
- 初级消防试题及答案大全.docx VIP
- 核医学教学课件:血液和淋巴显像.ppt VIP
- 重庆市各地方周氏支族源流(1-170支族).doc VIP
- 建筑工程质量管理体系流程图.docx
- 淋巴系统核医学检查课件.ppt VIP
- (高清版)B-T 6003.1-2022 试验筛 技术要求和检验 第1部分:金属丝编织网试验筛.pdf VIP
- (已压缩)TUCST007-2020房屋建筑与市政基础设施工程施工安全风险评估技术标准.docx VIP
原创力文档

文档评论(0)