二叉排序树实验.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WORD格式整理 专业知识分享 深 圳 大 学 实 验 报 告 课程名称: 数据结构实验与课程设计 实验项目名称: 二叉排序树 学院: 数学与计算科学学院 专业: 数计班 指导教师: 张艳 报告人: 张宏宽 学号: 2013190067 班级: 数计班 实验时间: 2014/12/3 实验报告提交时间: 2014/12/7 教务部制 实验目的与要求: 实验目的: 1、掌握二叉排序树的定义和特性 2、掌握二叉排序树的建立方法 3、实现二叉排序树的查找技术 4、掌握二叉排序树的查找性能 实验要求: 1、熟悉C++语言编程 2、了解二叉排序树的原理 实验内容: 二叉排序树定义为: 若树不空,则:左子树所有结点的值小于根结点;右子树所有结点的值大于根结点。 二叉排序树的中序遍历得到数据的升序排序。 实验内容: 给定一个关键字序列,生成一个二叉排序树; 对给定的关键字进行查找; 返回查找是否成功,关键字所在的位置以及查找次数 实验过程:(给出算法思想,并附上代码,对代码中的变量和核心语句进行注释) #includecstdlib using namespace std; typedef int Status; static int count; typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree; Status SearchBST(BiTree T,int key,BiTree f,BiTree *p)//寻找 { count++; if (!T) { *p = f; return false; } else if (key==T-data) { *p = T; return true; } else if (keyT-data) return SearchBST(T-lchild, key, T, p); else return SearchBST(T-rchild,key,T, p); } Status InsertBST(BiTree *T, int key)//生成树 { BiTree p,s; if (!SearchBST(*T, key, NULL, p)) { s = (BiTree)malloc(sizeof(BiTNode)); s-data = key; s-lchild = s-rchild = NULL; if (!p) *T= s; else if (keyp-data) p-lchild = s; else p-rchild = s; return true; } else return false; } Status Inorder(BiTree *T) { if(*T) { Inorder((*T)-lchild); if((*T)-data!=NULL) { cout(*T)-data ; } Inorder((*T)-rchild); } return 0; } Status Search(BiTree *T, int key) { BiTree p; count=0; if (SearchBST(*T, key, NULL, p)) coutcounte

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档