第一范文网 - 专业文章范例文档资料分享平台

数据结构复习题汇总

来源:用户分享 时间:2025/11/17 21:45:48 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

四. 算法设计与分析 :

1.请设计求n的阶乘的递归算法与非递归算法,其中非递归算法请用栈或队列实现;

参考答案:

long Factorial1 ( long n ) { if ( n == 0 ) return 1;

else return n * Factorial1 (n-1); }

long Factorial2 (long n){ SeqStacksqs; long fac=1; if (n>0) {

for(int i=n; i>0; i--) sqs.push(i);

while(sqs.Empty()==0) fac=fac*sqs.pop(); }

return fac; }

2.已知二叉树用二叉链表存储,试编写一函数实现计算该树的高度。请定义必要的数据结构。

template struct BiNode {

DataType data;

BiNode *lchild, *rchild; };

int Depth(BiNode *root) {

if (root == NULL) return 0; else {

hl= Depth(root->lchild); hr= Depth(root ->rchild); return max(hl, hr)+1;

11. 现有一棵二叉查找(排序)树(Binary Search Tree)BST,以二叉链表形式存储,进行中序遍历可得到从小到大排列的有序序列。

1)请编写一函数,对该二叉查找树进行变换,使得对新的二叉树进行中序遍历可得到从大到小排列的有序序列。 template

void Exchange(BiNode*root) {

if(root!=NULL){

Exchange(root->lchild); Exchange(root->rchild);

root->lchild<- -> root->rchild; } }

2)请用中文文字直接描述在新的二叉树上找最大元素的方法。 有关的数据结构已描述如下:

struct Binary_node { // 二叉树结点 int data;

Binary_node *left; Binary_node *right;};

搜索更多关于: 数据结构复习题汇总 的文档
数据结构复习题汇总.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3w11t24g7r3pit886asl2xn8u9whcj0046s_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top