it is the code of uva 536 http://ift.tt/19njc3i
But I want to ask,if the questions changes, that means asking preorder given postorder and inorder, how can i change my code???any one helps?it is urgent,thanks(NOT A HOMEWORK)
#include <stdio.h>
#include <string.h>
char inorder[100], preorder[100];
char line[200];
void trace(int ihead, int itail, int phead, int ptail)
{
char split = preorder[phead];
int i;
int len;
if (ihead > itail) return;
for (i=ihead; inorder[i] != split; ++i) ;
len = i - ihead;
trace(ihead, i-1, phead+1, phead+len);
len = itail - i - 1;
trace(i+1, itail, ptail - len, ptail);
printf("%c", split);
}
int main() {
int n;
for (;;) {
if (gets(line) == NULL) break;
sscanf(line, "%s %s", preorder, inorder);
n = strlen(inorder);
trace(0, n-1, 0, n-1);
printf("\n");}
return 0;
}
Aucun commentaire:
Enregistrer un commentaire