Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#define MAXB 1000
- #define MAXS 1000
- typedef int nodetypeb;
- #include "s_polje.h"
- typedef nodeb elementtypes;
- //#include "stacka.h"
- #include <iostream>
- #include <cstdlib>
- #include "s.h"
- using namespace std;
- void Process(btree &B,nodeb n) {
- std::cout << LabelB(B,n) << " ";
- }
- void Preorder(btree &B) {
- stack S;
- InitS(S);
- PushS(S,RootB(B));
- do {
- nodeb n = TopS(S);
- PopS(S);
- Process(B,n);
- if (RightChildB(B,n) != -1)
- PushS(S,RightChildB(B,n));
- if (LeftChildB(B,n) != -1)
- PushS(S,LeftChildB(B,n));
- } while (!IsEmptyS(S));
- }
- void PrO(btree &B, nodeb n) {
- Process(B,n);
- if (LeftChildB(B,n) != lambdab)
- PrO(B,LeftChildB(B,n));
- if (RightChildB(B,n) != lambdab)
- PrO(B,RightChildB(B,n));
- }
- void IO(btree &B, nodeb n) {
- if (LeftChildB(B,n) != lambdab)
- IO(B,LeftChildB(B,n));
- Process(B,n);
- if (RightChildB(B,n) != lambdab)
- IO(B,RightChildB(B,n));
- }
- void Inorder(btree &B) {
- IO(B,RootB(B));
- }
- void PoO(btree &B, nodeb n) {
- if (LeftChildB(B,n) != lambdab)
- PoO(B,LeftChildB(B,n));
- if (RightChildB(B,n) != lambdab)
- PoO(B,RightChildB(B,n));
- Process(B,n);
- }
- void Postorder(btree &B) {
- PoO(B,RootB(B));
- }
- int main(){
- btree B;
- InitB(B,4);
- nodeb n = RootB(B);
- int izbor, ulaz;
- do{
- cout << "1. Dodavanje korijena" << endl;
- cout << "2. Pomak lijevo" << endl;
- cout << "3. Pomak desno" << endl;
- cout << "4. Kreiraj lijevo" << endl;
- cout << "5. Kreiraj desno" << endl;
- cout << "6. Reset na korijen" << endl;
- cout << "9. Zavrsetak stabla" << endl;
- cout << "Izbor: "; cin >> izbor;
- switch(izbor){
- case 1: cin >> ulaz; CreateRootB(B, ulaz); n = RootB(B); cout << "Korijen kreiran" << endl; break;
- case 2: n = LeftChildB(B, n); cout << "Pomaknuto lijevo" << endl; break;
- case 3: n = RightChildB(B, n); cout << "Pomaknuto desno" << endl; break;
- case 4: cin >> ulaz; CreateLeftChildB(B, n, ulaz); cout << "Kreirano lijevo dijete" << endl; break;
- case 5: cin >> ulaz; CreateRightChildB(B, n, ulaz); cout << "Kreirano desno dijete" << endl; break;
- case 6: n = RootB(B); cout << "Resetirano" << endl; break;
- case 7: Preorder(B);
- case 9: break;
- }
- }while(izbor!=9);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement