#include #include using namespace std; class Element { public: int value; Element* left; Element* right; Element() { value = 0; left = NULL; right = NULL; } }; /* void showTree(Element* element) { if(element->left) showTree(element->left); if(element->right) showTree(element->right); cout << element->value << " "; } */ int main() { char buffer[12]; // maks. dlugosc liczby 32bit z minusem i NULL na koncu int bufferPozycja = 0; char tmpChar; Element* root = new Element(); Element* currentNode = root; while(cin >> noskipws >> tmpChar) // magiczny trick, zeby wczytywalo 'enter' (new line) jako znak { if(tmpChar == 'L') // w lewo { if(currentNode->left == NULL) { currentNode->left = new Element(); } currentNode = currentNode->left; } else if(tmpChar == 'R') // w prawo { if(currentNode->right == NULL) { currentNode->right = new Element(); } currentNode = currentNode->right; } else if(tmpChar == '\n') // nowa linia { buffer[bufferPozycja] = 0; bufferPozycja = 0; // zamieniamy tablice char na liczbe np. '-2 ' na int'a -2 currentNode->value = atoi(buffer); currentNode = root;; } else // cyfra lub znak minus lub spacja ? { buffer[bufferPozycja++] = tmpChar; } } // zapisuje ostatnia liczbe buffer[bufferPozycja] = 0; currentNode->value = atoi(buffer); // koniec wczytywania /* showTree(root); */ return 0; }