欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计AVL树实现及其分析实验报告

    • 资源ID:1400382       资源大小:126.50KB        全文页数:16页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    数据结构课程设计AVL树实现及其分析实验报告

    1、 算算 法法 与与 数数 据据 结结 构构 课课 程程 设设 计计 报报 告告 题题 目目: AVLree 的实现及分析的实现及分析 班班 级级: 学学 号号: 姓姓 名名: 成成 绩绩: 2013 年年 12 月月 31 日日 一、一、AVLreeAVLree 的实现及分析的实现及分析 AVL 树是平衡的二元查找树。 一株平衡的二元查找树就是指对其每一个节点, 其左子树和右 子树的高度只差不超过 1. 编写程序实现 AVL 树的判别;并实现 AVL 树的 ADT,包括其上的基本操作;节点的加入和删 除。BSt 和 AVL 的差别就在平衡性上,所以 AVL 的操作关键要考虑如何在保持二元查找树

    2、定 义条件下对二元树进行平衡化。 (1) 编写 AVL 树的判别程序,并判别一个人元查找数是否为 AVL 树。二元查找树用其先序 遍历结果表示,如:5,2,1,3,7,8. (2) 实现 AVL 树的 ADT,包括其上的基本操作:节点的加入和删除,另外包括将一般二元 查找树转变为 AVL 树的操作。 二、设计思想(宋体,三号加粗)二、设计思想(宋体,三号加粗) 任意给定一组数据,设计一个算法,建立一棵平衡二叉树,对它进行查找、插入、删除等操 作。平衡二叉树 ADT 结构如下: typedef struct Status key; ElemType; typedef struct BSTNode

    3、 ElemType data; Status bf; struct BSTNode *lchild,*rchild; BSTNode,*BSTree; 给出一组数据,通过 InsertAVL(BSTree typedef char TElemType; typedef struct Status key; ElemType; typedef struct BSTNode ElemType data; Status bf; struct BSTNode *lchild,*rchild; BSTNode,*BSTree; Status SearchBST(BSTree T, Status key,

    4、 BSTree f, BSTree return FALSE; / 查找不成功 else if (key=T-data.key) p = T; return TRUE; / 查找成功 else if (keydata.key) return SearchBST(T-lchild, key, T, p); / 在左 子树中继续查找 else return SearchBST(T-rchild, key, T, p); / 在右 子树中继续查找 / SearchBST Status InsertBST(BSTree if (!SearchBST(T, e.key, NULL, p) / 查找不成

    5、功 s = (BSTree)malloc(sizeof(BSTNode); s-data = e; s-lchild = s-rchild = NULL; if (!p) T = s; / 插入 s 为新的根结点 else if (e.keydata.key) p-lchild=s; / 插入 s 为左孩子 else p-rchild = s; / 插入 s 为右孩子 return TRUE; else return FALSE; / 树中已有关键字相同的结点, 不再插入 / Insert BST Status CreateBST(BSTree ElemType e; coutnum; whi

    6、le(num!=0) coute.key; InsertBST(T,e);/按二叉排序树插入方法; num-; return 0; Status max(Status lchild,Status rchild)/取较大的值返 回 if(lchildrchild) return lchild; else return rchild; Status Depth_bt(BSTree T)/求二叉树深度 if (T=NULL) return 0; return 1+max(Depth_bt(T-lchild),Depth_bt(T-rchild); Status Balance(BSTree T)/递归判断是不是平衡二叉树 Status bl,br; if (T=NULL) return 1;/空树输出是平衡二叉树 bl=Depth_bt(T-lchild);/将左子树的深度赋值给 bl br=Dept


    注意事项

    本文(数据结构课程设计AVL树实现及其分析实验报告)为本站会员(毕***)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583