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
من برنامه زیر رو برای سوال داخل عکس نوشتم...
اما در اجرا اون در خط 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