int p_reverse(struct node *t, int h) { struct node *tmp; if(t == NULL || h == 0) return 0; tmp = t->left; t->left = t->right; t->right = tmp; p_reverse(t->left, h-1); p_reverse(t->right, h-1); return(0); }
int reverse(struct node *t) { if(t == NULL) return (-1); int h = height(t); p_reverse(t, h); return (0); }
/* * add another match to the list. */ local void add_match(int level, Path where, Natural ncases, Natural c_index) { m_end->level = level; m_end->where = p_save(p_reverse(where)); m_end->ncases = ncases; m_end->index = c_index; m_end++; }
int main(int argc, char *argv[]) { int val = 9; char str[]={"knuj"}; printf("Print numbers in reverse order using recursion input %d(default)",val); p_reverse(val); printf("Reverse of : %s is : ",str); reverseString(str); printf("\n"); return (0); }
void p_reverse( int val) { if(val == 0) return; printf("%d ",val); p_reverse(val-1); }