• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-07
  • 语言: C/C++
  • 标签: 二叉链表  

资源简介

二叉排序树。用二叉链表作存储结构。 要求: (1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T; (2)对二叉排序树T作中序遍历,输出结果; (3)计算二叉排序树T查找成功的平均查找长度,输出结果; (4)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序 历(执行操作2);否则输出信息“无x”。

资源截图

代码片段和文件信息

#include
#include
#include
#include
typedef struct Tnode
 {
   int   data; /*输入的数据*/
   struct Tnode *lchild*rchild; /*结点的左右指针,分别指向结点的左右孩子*/
 }*nodeBSTnode;
 int searchBST(node tint keynode fnode *p) /*查找函数*/
{
    if(!t)  {*p=f;return (0);} /*查找不成功*/
    else    if(key==t->data)
    {
     *p=t;return (1);
    } /*查找成功*/
    else    if(key<=t->data)
    searchBST(t->lchildkeytp); /*在左子树中继续查找*/
    else
    searchBST(t->rchildkeytp);/*在右子树中继续查找*/
}
int insertBST(node *tint key)  /*插入函数*(t为根节点)*/
{
    node p=NULLs=NULL;//p为当前结点,s为要插入的结点
    if(!searchBST(*tkeyNULL&p)) /*查找不成功*/
    {
       s=(node)malloc(sizeof(BSTnode));//malloc 向系统申请分配指定的内存空间
       s->data=key;
       s->lchild=s->rchild=NULL;
       

评论

共有 条评论