PDA

View Full Version : سوال: ارور قطع شدن برنامه



e4lyas
سه شنبه 19 دی 1391, 10:48 صبح
باسلام
من برنامه زیر رو برای سوال داخل عکس نوشتم...
اما در اجرا اون در خط 40

Node* p = new Node((char*) preOrder[int (index)]);

دچار Break میشه و برنامه اجرا نمیشه ..
به نظر ساختاری میاد ولی متوجه نمیشم .
الگوریتم مطرح شد هم به نظرم درست میاد فقط اجراش شاید به مشکل خورده ..
ممنون میشم راهنمایی کنید .

سوال : http://img4up.com/up2/37958455342840128114.png



// el.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <String>

using namespace std;

// ************ Program to Encode By preOrder and Inorder ************* //


// Node Class Starts
class Node {
public:
Node(string s=""){ this -> root = s; }
string root;
Node *right,*left;
}; // End Node Class

int pos = 0;

//Start gettingTree

Node *getTree(char *preOrder,char *inOrder,int first,int last) {
if(last - first == 1) {
Node *p = new Node((char*) preOrder[first]);
p -> right = NULL;
p -> left = NULL;
}

if(last < first || first == last) return NULL;

char* index = strchr(inOrder, preOrder[pos]);
pos++;

Node* p = new Node((char*) preOrder[int (index)]);
p -> left = getTree(preOrder, inOrder, first, int (index));
p -> right = getTree(preOrder, inOrder, first, int (index)+1);

return p;
} // End getTree


// Start PostOrder FCN

void postOrder(Node * p){
if(p == NULL) return;

postOrder(p -> right);
cout << p -> root;
postOrder(p -> left);
} // End PostOrder FCN


// Main FCN

int main (){
char *preOrder = "RTUOCPME",*inOrder = "TCOUPMRE";
postOrder(getTree(preOrder,inOrder,0,strlen(preOrd er)));
return 0;
} // End Main FCN

مسعود اقدسی فام
سه شنبه 19 دی 1391, 15:29 عصر
(int(index یعنی چی؟ اگه منظور تبدیل ضمنیه که باید int) index) باشه.