| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 959 人关注过本帖
标题:求教用VS2012编译不出来 大部分代码是老师给的 自己补了一些空 说是变量BT ...
只看楼主 加入收藏
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求教用VS2012编译不出来 大部分代码是老师给的 自己补了一些空 说是变量BT未初始化
#include <stdio.h>
#include <iostream>
using namespace std;
#include <stdlib.h>
#include "string.h"
#define num 100
typedef char datatype;
typedef struct node
{
    datatype data;
    struct node *leftchild;
    struct node *rightchild;
}BinTNode;
typedef BinTNode *BinTree;
//按照完全二叉树的顺序,构建二叉树
BinTree CreateBinTree(BinTree bt)
{/*Q[1..n]是BinTNode 类型的指针,front 和rear 是队头指针和队尾指针*/
    BinTNode *Q[num];
    BinTNode *s;
    int front,rear;
    char ch;
    ch=getchar();
    bt=NULL;
    front=1;
    rear=0;
    while(ch!='#')
    {
        s=NULL;
        if (ch!='@')
        {
            s=new BinTNode;
            s->data=ch;
            s->leftchild=NULL;
            s->rightchild=NULL;
        }
        rear++;
        Q[rear]=s;
        if (rear==1)
            bt=s;
        else
        {
            if(s!=NULL && Q[front]!=NULL)
            {
                if(rear==2*front)
                    Q[front]->leftchild=Q[rear];
                else
                    Q[front]->rightchild=Q[rear];
            }
        }
        if(rear==2*front+1)
        {
            front++;
        }
        
        ch=getchar();
    }
    return bt;
}
//前序遍历二叉树
void preorder(BinTree bt)
{
    if(bt)
    {
        cout<<bt->data;
        preorder(bt->leftchild);
        preorder(bt->rightchild);
    }
}
//中序遍历二叉树
void inorder(BinTree bt)                                                                                          
{
    if(bt)
    {   
        inorder(bt->leftchild);
        cout<<bt->data;
        inorder(bt->rightchild);
    }
}
//后序遍历二叉树
void postorder(BinTree bt)
{
    if(bt)
    {
        postorder(bt->leftchild);
        postorder(bt->rightchild);
        cout<<bt->data;
    }
}
//主函数
void main()
{
    BinTree bt;
    int xz=1;
    while(xz)
    {
        cout<<endl;
        cout<<" Binary Tree Traverse "<<endl;
        cout<<"========================================"<<endl;
        cout<<" 1.Create Binary Tree Structure "<<endl;
        cout<<" 2.Pre Order "<<endl;
        cout<<" 3.In Order "<<endl;
        cout<<" 4.Post Order "<<endl;
        cout<<" 0.Exit "<<endl;
        cout<<" Please Slect: 0-4: "<<endl;
        cin>>xz;
        cout<<endl;
        switch(xz)
        {
            case 1:
            cout<<"input value for perfect binary tree: "<<endl;
            bt=CreateBinTree(bt);
            cout<<"the binary tree structure is created "<<endl;
            break;
            case 2:
            cout<<"The pre order is: ";
            preorder(bt);
            cout<<endl;
            break;
            case 3:
            cout<<"The in order is: ";
            inorder(bt);
            cout<<endl;
            break;
            case 4:
            cout<<"The post order is: ";
            postorder(bt);
            cout<<endl;
            break;
            case 0:
            xz=0;
            return;
        }
    }
}
搜索更多相关主题的帖子: include 二叉树 
2013-11-14 23:09
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:7 
代码太长了,瞟了一眼没看到BT在哪...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-15 08:02
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
我用cb编译 把main改成int 就能过  但是运行就不知道了

DO IT YOURSELF !
2013-11-15 08:09
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
收藏
得分:0 
1>------ 已启动生成: 项目: Project31, 配置: Debug Win32 ------
1>  源.cpp
1>e:\documents\visual studio 2012\projects\project31\project31\源.cpp(131): error C2561: “main”: 函数必须返回值
1>          e:\documents\visual studio 2012\projects\project31\project31\源.cpp(90) : 参见“main”的声明
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
  改为int 之后成了这个

菜鸟飘过
2013-11-15 14:17
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
收藏
得分:0 
我感觉 问题出在 怎么初始化这个bt  但是我不是很懂 怎么初始化它   我们老师用VC6  这个程序好像能用

菜鸟飘过
2013-11-15 14:31
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用yew2012在2013-11-15 14:17:28的发言:

1>------ 已启动生成: 项目: Project31, 配置: Debug Win32 ------
1>  源.cpp
1>e:\documents\visual studio 2012\projects\project31\project31\源.cpp(131): error C2561: “main”: 函数必须返回值
1>          e:\documents\visual studio 2012\projects\project31\project31\源.cpp(90) : 参见“main”的声明
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
  改为int 之后成了这个
这错误   很明显  不知道哪里看不懂

DO IT YOURSELF !
2013-11-15 14:38
i80286
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:99
专家分:428
注 册:2013-9-30
收藏
得分:7 
void main,真当是无语
2013-11-15 14:59
yew2012
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:30
专家分:2
注 册:2012-11-23
收藏
得分:0 
用void 的话  后面返回值 可以不写 用了 int  的话 后面返回值改为0  
他们都是还有一个错误 那就是
1>------ 已启动生成: 项目: Project34, 配置: Debug Win32 ------
1>  源.cpp
1>e:\documents\visual studio 2012\projects\project34\project34\源.cpp(111): error C4700: 使用了未初始化的局部变量“bt”
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
我感觉 用int  和void  不是问题 而是  它怎么初始化吧

菜鸟飘过
2013-11-16 21:16
快速回复:求教用VS2012编译不出来 大部分代码是老师给的 自己补了一些空 说是变 ...
数据加载中...
 
   



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

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