MUSICHIEN 2016-04-01 16:02 采纳率: 50%
浏览 1453
已结题

每次程序都崩溃,求大神debug

小的C++初学者一枚,在做一个题目:给出preorder和inorder二叉树顺序,推出potorder顺序。目前程序已经写完,可是总是在运行时崩溃,不知哪里出了问题?
题目页面:http://wirelesslab.sjtu.edu.cn:8088/jol/problem.php?cid=1005&pid=0
...

#include
#include
#include

using namespace std;

int length;

struct TreeNode
{
struct TreeNode* left;
struct TreeNode* right;
char elem;
};

void sort(char preorder, char *inorder, int length)
{
TreeNode
node = new TreeNode;
node->elem = *preorder;
int rootIndex = 0;
for(;rootIndex < length; rootIndex++)
{
if(inorder[rootIndex] == *preorder)
break;
}
//Left
sort(inorder, preorder +1, rootIndex);
//Right
sort(inorder + rootIndex + 1, preorder + rootIndex + 1, length - (rootIndex + 1));

cout<<node->elem<<endl;

delete node;
return;

}

int main()
{
int time;
scanf("%d", &time);
int count=0;
while(count < time)
{
string str;
char temp;
int i;

    while((temp=cin.get())!='\n')
    {
            str +=temp;
    }
    length =str.length();

    char* preorder = new char[length];
    char* inorder = new char[length];

    for(i = 0;i<length;i++)
    {
        preorder[i]=str[i];
    }

    for(i=0;i<length;i++)
    {
        scanf("%c", inorder[i]);
    }

    sort(preorder, inorder, length);

    count++;
    delete preorder;
    delete inorder;
}
return 0;

}

  • 写回答

5条回答

  • 足球中国 2016-04-01 16:47
    关注

    node->elem = *preorder; 确定是这样的

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题