头歌(C语言)-数据结构与算法-查找

构建二叉排序树

任务描述

本关任务:设计出在二叉排序树中插入结点的算法,在此基础上实现构建二叉排序树的算法。

相关知识

实验目的

  1. 掌握顺序表的查找方法,尤其是二分查找方法;
  2. 掌握二叉排序树的建立及查找。

实验任务

说明:查找是软件设计中的最常用的运算,查找所涉及到的表结构的不同决定了查找的方法及其性能。二分查找是顺序表的查找中的最重要的方法,应能充分理解其实现方法和有关性能,并能借助其判定树结构来加深理解。二叉排序树结构在实验时具有一定的难度,可结合二叉树的有关内容和方法来实现。

实验说明

二叉查找树结构及其类型描述

二叉排序树的结构可以和前面二叉树部分完全类似,所不同的是,此处实验中大多以整型数的形式给出的,因此,结构中的元素类型不同,需要注意一下。 二叉排序树结构类型bst的描述如下:


  1. struct bnode
  2. {
  3. struct bnode * lchild, rchild;
  4. int data;
  5. };
  6. typedef struct bnode * bst;

具体的库函数可以查看头文件bst.h。

编程要求

请在右侧编辑器的命名空间内填写相关代码,给出一个待插入的序列,实现将序列的每个数字依次插入初始为空二叉排序树的算法。 若题目有其它要求,应当将题目要求的结果在solve函数内通过返回或引用的形式传递参数。

测试说明

平台会对你编写的代码进行测试:


  1. 函数说明:
  2. bst solve(vector & a);
  3. 参数 a 为待插入的序列
  4. 返回通过此法构建的二叉排序树根节点
  5. 右侧数据框说明:
  6. 测试输入:
  7. 第一行 1 个整数 n 表示序列的大小
  8. 第二行 n 个整数表示序列里的元素
  9. 实际输出:
  10. 输出你返回的二叉排序树中序遍历的序列
  11. 结构体说明:

你可能感兴趣的:(数据结构与算法(头歌),c语言,算法,数据结构)