VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 845|回复: 9

一题二叉树的程序题

[复制链接]

1

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-15 17:40:01 | 显示全部楼层 |阅读模式
程序逐个输入整数,当输入的整数不是结尾标志-9999时,将其插入到二叉排序树中.若在插入过程中发现该值结点二叉排序树中已经存在,则将重复度计入该结点的count记数中.直到全部输入结束.

#include<stdio.h>
#include<stdlib.h>
typedef struct Binary
{
     int val,count;
     struct Binary *left *right;
}Binary;

void binaryTree( Binary **t, int data)
{
    Binary *ptr,*p;
    int d;
    p=NULL;
    ptr=_______(1)_______;
    while(_______(2)_______)
    {
        if(data == ptr->val)
           _______(3)_______;
        else
        {
           p=ptr;
           ptr=_______(4)_______;
     }

    ptr = (Binary *)malloc(sizeof(Binary));
    ptr->right = ptr->left = NULL;
    _______(5)_______;
    if(_______(6)_______)
       _______(7)_______ = ptr;
    else if(data > p->val)
         p->right = ptr;
         else
         p->left = ptr;
}
     
void main()
{
   Binary *root=NULL;
   int d;
   scanf("%d",&d);
   while(d!=-9999)
   {
      binaryTree(_______(8)_______);
      scanf("%d",&d);
    }
}
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-19 16:27:02 | 显示全部楼层
我的答案是(1)*t
          (2)ptr!=NULL
          (3)ptr->count++;return;
          (4)
          (5)ptr->val=data;
          (6)*t ==NULL
          (7)*t
          (8)&root,d
回复

使用道具 举报

0

主题

5

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-20 09:09:01 | 显示全部楼层
源码给的不正确,少了{?还是就是这样。。。。

4 ptr->right?ptr->left:data>ptr->val }(变态)
5 ptr->val=data; ptr->count = 1;


回复

使用道具 举报

1

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-20 15:36:01 | 显示全部楼层
while(_______(2)_______)
    {
        if(data == ptr->val)
           _______(3)_______;
        else
        {
           p=ptr;
           ptr=_______(4)_______;
         }
     }
改一下.这里漏了一个}
回复

使用道具 举报

1

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-20 16:09:02 | 显示全部楼层
gwf17445 谢谢你(4)答案.
不过是不是写错了啊.因该是data<ptr->val?ptr->right:ptr->left吧
回复

使用道具 举报

0

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-20 16:18:01 | 显示全部楼层
楼上的4好像写的有点语法错误:
4 data>ptr->val ? ptr->right : ptr->left;}
回复

使用道具 举报

1

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-20 16:27:01 | 显示全部楼层
其他的答案没错了吧
回复

使用道具 举报

0

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-20 16:45:01 | 显示全部楼层
gwf17445 回答的不错,赞!
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-20 18:45:01 | 显示全部楼层
mark
回复

使用道具 举报

1

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-20 19:27:01 | 显示全部楼层
顶哦.兄弟们真的是一个比一个强.我太土了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表