#include typedef struct Node { char type; /* 0-bily,1-cerny,2-subquad*/ Node *subnode[4]; /* pokud type==2, odkaz na subquady */ } Node; int trans[4] = { 1, 3, 0, 2 }; /* transformace quadu pro rotaci */ Node * get_sub_tree() /* vytvori strom popisujici quady */ { Node *node = new Node; node->type = getchar(); if (node->type=='2') for (int i=0;i<4;i++) node->subnode[i] = get_sub_tree(); return node; } void put_rsub_tree(Node *node) /* vypise transformovany kod podle stromu */ { putchar(node->type); if (node->type=='2') for (int i=0;i<4;i++) put_rsub_tree(node->subnode[trans[i]]); delete node; } int main() { printf("Kod: "); put_rsub_tree(get_sub_tree()); puts(""); return 0; }