美文网首页
数据结构——查找算法的实现与分析(二叉排序树)

数据结构——查找算法的实现与分析(二叉排序树)

作者: 程序员小伙伴 | 来源:发表于2019-01-19 20:47 被阅读2次

实验目的:

1.掌握二叉排序树的创建及查找算法(递归和非递归均可)。

实验要求:

1、    创建一棵二叉排序树,并实现对该二叉排序树的查找算法。

实验过程:

1、    输入一数据序列,根据输入的数据序列创建一棵二叉排序树(二叉链表);

2、    在已创建的二叉排序树中查找“37”和“66”两个结点,并给出相应的查询结果。

实验报告中给出创建二叉排序树和二叉排序树的查找算法代码。

实验结果:

1、输入数据序列:45,24,53,12,37,93。

2、输出二叉排序树的中序遍历序列:12,24,37,45,53,93;

3、

输入要查找的数据:37, 输出查找的结果:该结点已找到。

输入要查找的数据:93, 输出查找的结果:该结点未找到。

实验分析:

1.对二叉排序树的查找进行性能分析,计算其ASL;

2.列举调试运行过程中出现的错误并分析原因。

要求:

本人从事在线教育十年工作经验现在精心整理了一套从小白到项目实践开发各种学习资料如果你想学想加入我们请关注我加群775356268就可以领取学习资料!!!

(1)程序要添加适当的注释,程序的书写要采用缩进格式。

(2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应。

(3) 程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。

#include<bits/stdc++.h>

usingnamespacestd;

#defineKeyType int

#defineInfoType int

#defineENDFLAG 0

typedefstruct{

    KeyType key;

    InfoType otherinfo;

}ElemType;

typedefstructBSTNode{

    ElemType data;

structBSTNode*lchild, *rchild;

}BSTNode, *BSTree;

ElemType e;

BSTree S, T;

BSTreeSearchBST(BSTree T, KeyType key){

if((!T) || key == T->data.key)returnT;

elseif(key < T->data.key)returnSearchBST(T->lchild, key);

elsereturnSearchBST(T->rchild, key);

}

voidInsertBST(BSTree &T, ElemType e){

if(!T){

S =newBSTNode;

        S->data = e;

S->lchild = S->rchild =NULL;

        T = S;

    }

elseif(e.key < T->data.key)

        InsertBST(T->lchild,e);

elseif(e.key > T->data.key)

        InsertBST(T->rchild,e);

}

voidCreatBST(BSTree &T){

T =NULL;

cin>> e.key;

while(e.key != ENDFLAG){

        InsertBST(T, e);

cin>> e.key;

    }

}

voidInOrderTraverse(BSTree T){

if(T){

InOrderTraverse(T->lchild);

cout<< T->data.key <<" ";

InOrderTraverse(T->rchild);

}

}

intmain(){

cout<<"请输入关键字"<

CreatBST(T);

cout<<"二叉排序树的中序遍历序列:"<

InOrderTraverse(T);

intn;

cout<<"输入要查找的数据:"<

while(scanf("%d",&n) != EOF && n){

if(SearchBST(T, n))

cout<<"输出查找的结果:该结点已找到。"<

else

cout<<"输出查找的结果:该结点未找到。"<

}

return0;

}

/*

45 24 53 12 37 93 0

*/

相关文章

  • 查找

    二分查找适用于有序表查找, 包括二叉排序树 散列查找请看本博客数据结构与算法hash表文章http://www.j...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 数据结构——查找算法的实现与分析(二叉排序树)

    实验目的: 1.掌握二叉排序树的创建及查找算法(递归和非递归均可)。 实验要求: 1、创建一棵二叉排序树,并实现对...

  • 如何学习数据结构与算法

    算法学习经验 推荐: 入门: 数据结构启蒙:《数据结构与算法分析——C 语言描述》 算法启蒙:《算法设计与分析基础...

  • 查找

    静态查找顺序查找 折半查找 散列查找 动态查找二叉排序树 散列查找 ASL(平均查找长度) - 衡量查找算法效率的...

  • 数据结构与算法参考书籍

    数据结构与算法分析 算法 算法导论 java编程思想

  • 长期计划安排

    一、数据结构与算法分析 参考书 数据结构与算法分析:C语言描述 算法(第四版) 算法导论 课程相关 MOOC 邓俊...

  • 带领初学者学习数据结构与算法免费视频教程

    带领初学者学习数据结构与算法免费视频教程(2 个视频) 详解使用 JavaScript 实现二分查找算法「12:3...

  • 排序算法

    算法与数据结构基础 查找算法: 二分查找法: 简介:二分查找法又被称为折半查找法,用于预排序的查找问题 过程: 如...

  • 数据结构与算法

    数据结构与算法之美 数据结构与算法之美1--如何学数据结构与算法之美2--复杂度分析(上)数据结构与算法之美3--...

网友评论

      本文标题:数据结构——查找算法的实现与分析(二叉排序树)

      本文链接:https://www.haomeiwen.com/subject/korzdqtx.html