数据结构算法设计题复习题0001.docx
- 文档编号:7868282
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:53.32KB
数据结构算法设计题复习题0001.docx
《数据结构算法设计题复习题0001.docx》由会员分享,可在线阅读,更多相关《数据结构算法设计题复习题0001.docx(16页珍藏版)》请在冰豆网上搜索。
数据结构算法设计题复习题0001
算法设计题
1.设二叉树bt采用二叉链表结构存储。
试设计一个算法输出二叉树中所有非叶子结点,并求出非叶子结点的个数。
【答案】
intcount=0;
voidalgo2(BTNode*bt){
if(bt){
if(bt->lchild||bt->rchild){printf(bt->data);
count++;}algo2(bt->lchild);algo2(bt->rchild);
}
}
2.阅读下列函数arrange()
intarrange(inta[],int1,inth,intx)
{111和h分别为数据区的下界和上界
inti,j,t;
i=1;j=h;
while(i
while(i
if(i {t=a[j];a[j]=a[i];a[i]=t;} } if(a[i] } (1)写出该函数的功能; (2)写一个调用上述函数实现下列功能的算法: 对一整型数组b[n]中的元素进行重新排列,将所有负数均调 整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个 数。 【答案】 (1)该函数的功能是: 调整整数数组a[]中的元素并返回分界值i,使所有vx的元素均落在a[1..i]上,使所有》x returnq—p;returnp—q; }} 3.假设线性表以带表头结点的循环单链表表示。 试设计一个算法,在线性表的第k个元素前插入新元素y。 假 如表长小于k,则插在表尾。 【答案】 voidalgo1(LNode*h,intk,ElemTypey){ q=h;P=h->next;j=1; while(p! =h&&j q=p;p=p->next;j++; } s=(LNode*)malloc(sizeof(Lnode)); s->data=y; q->next=s; s->next=q; } 4.二叉排序树的类型定义如下: typedefstructBSTNode{//二叉排序树的结点结构 intdata;//数据域 structBSTNode*lchild,*rchild;//左、右孩子指针 }BSTNode,*BSTree; 设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。 【答案】 intf34(BSTreeroot) { intcount; BSTNode*p; p=root;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 设计 复习题 0001