| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 319 人关注过本帖
标题:为什么书上输入后输出的和我不一样呢,麻烦谁能帮忙也运行下这段代码,看下 ...
只看楼主 加入收藏
a544107900
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-2-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
为什么书上输入后输出的和我不一样呢,麻烦谁能帮忙也运行下这段代码,看下是不是我哪里错了?
为什么书上输入后输出的和我不一样呢,麻烦谁能帮忙也运行下这段代码,看下是不是我哪里错了?
但我是书上抄下来的,真心不知道哪里错了,麻烦高手指点下,谢谢!!截图如下:
程序代码:
/* Program 11.7 Sorting integers using a binary tree */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

/* Function prototypes */
struct Node *createnode(long value);
struct Node *addnode(long value, struct Node *pNode);

void listnodes(struct Node *pNode);
void freenodes(struct Node *pNode);

/* Defines a node in a binary tree sotring integers */
struct Node
{
    long item;
    int count;
    struct Node *pLeft;
    struct Node *pRight;
};


/* Function main - execution starts here */
int main(void)
{
    long newvalue = 0;
    struct Node *pRoot = NULL;
    char answer = 'n';
    do
    {
        printf("Enter the node value: ");
        scanf(" %ld", &newvalue);
        if(pRoot == NULL)
            pRoot = createnode(newvalue);
        else
            addnode(newvalue, pRoot);
        printf("\nDo you want to enter another (y or n)? ");
        scanf(" %c", &answer);
    }while(tolower(answer) == 'y');

    printf("The values in ascending sequence are: ");
    listnodes(pRoot);
    freenodes(pRoot);

    return 0;
}



struct Node *createnode(long value)
{
    struct Node *pNode = (struct Node*)malloc(sizeof(struct Node));
    pNode -> item = value;
    pNode -> count = 1;
    pNode -> pLeft = pNode -> pRight = NULL;
    return pNode;
};

/* Add a new node to the tree */
struct Node *addnode(long value, struct Node *pNode)
{
    if(pNode == NULL)
        return createnode(value);

    if(value == pNode -> item)
    {   /* Value equals current node */
        ++pNode -> count;
        return pNode;

    }

    if(value < pNode -> item)
    {
        if(pNode -> pLeft = NULL)
        {
            pNode -> pLeft = createnode(value);
            return pNode -> pLeft;
        }
        else
            return addnode(value, pNode -> pLeft);
    }
    else
    {
        if(pNode -> pRight == NULL)
        {
            pNode -> pRight = createnode(value);
            return pNode -> pRight;
        }
        else
            return addnode(value, pNode -> pRight);
    }
};


/* List the node values in ascending sequence */
void listnodes(struct Node *pNode)
{
    if(pNode -> pLeft != NULL)
        listnodes(pNode -> pLeft);

    for(int i = 0; i < pNode -> count ; i++)
        printf("\n%10ld", pNode -> item);

    if(pNode -> pRight != NULL)
        listnodes(pNode -> pRight);
}

/* Release memory allocated to nodes */
void freenodes(struct Node *pNode)
{
    if(pNode == NULL)
        return;

    if(pNode -> pLeft != NULL)
        freenodes(pNode -> pLeft);

    if(pNode -> pRight != NULL)
        freenodes(pNode -> pRight);

    free(pNode);
}


为什么书上输入后输出的和我不一样呢,麻烦谁能帮忙也运行下这段代码,看下是不是我哪里错了?
但我是书上抄下来的,真心不知道哪里错了,麻烦高手指点下,谢谢!!截图如下:[local]1[/local][local]2[/local]
搜索更多相关主题的帖子: include 
2014-01-22 23:18
a544107900
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-2-8
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-01-22 23:19
a544107900
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-2-8
收藏
得分:0 
晕死,我弄错了  问题解决了!!!
2014-01-22 23:25
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
解决了 撒分啊

DO IT YOURSELF !
2014-01-23 10:59
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:10 
呵呵。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-01-23 11:26
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
又一个马虎的。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-01-23 11:27
快速回复:为什么书上输入后输出的和我不一样呢,麻烦谁能帮忙也运行下这段代码, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024856 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved