Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include "Roditeljj.h"
- #include <fstream>
- #include <sstream>
- #include "vrijednosti.h"
- using namespace std;
- int brojRazmaka (string nesto){
- int brojac=0;
- for (int i=0;i<nesto.length();i++){
- if (nesto[i]!=' ')
- break;
- brojac++;
- }
- return brojac;
- }
- void gradiStablo (Roditeljj &cvor, string podaci[], int brRedaka){
- Roditeljj* dijete;
- for(int i=cvor.vrijednost.red+1; i<brRedaka; i++){
- string podatak="";
- int k=0;
- for (int j=0;j<podaci[i].length();j++){//mice razmake
- if (podaci[i][j]!=' ') k=1;
- if (k==1)
- podatak+=podaci[i][j];
- }
- podatak+='\n';
- if(brojRazmaka(podaci[i])==cvor.vrijednost.brojRazmaka+1){
- dijete=new Roditeljj(vrijednosti(podatak,brojRazmaka(podaci[i]),i));
- cvor.pokazivac.push_back(dijete);
- }else if(brojRazmaka(podaci[i])<cvor.vrijednost.brojRazmaka+1){
- break;}
- }
- for(int i=0; i<cvor.pokazivac.size(); i++){
- gradiStablo(*cvor.pokazivac[i], podaci, brRedaka);
- }
- return;
- }
- void traziGresku(Roditeljj cvor){
- if (cvor.vrijednost.izraz=="<primarni izraz>") cvor.vrijednost.provjeriPrimarniIzraz();
- for(int i=0; i<cvor.pokazivac.size(); i++){
- traziGresku(*cvor.pokazivac[i]);
- return;
- }
- void ispisStabla (Roditeljj cvor)
- {
- cout<<cvor.vrijednost.izraz;
- for(int i=0; i<cvor.pokazivac.size(); i++){
- ispisStabla(*cvor.pokazivac[i]);
- }
- return;
- }
- int main (int argc, char *argv[]) {
- string ulaz[100]={},unos="",datoteka;
- Roditeljj cvor;
- datoteka="test.in";
- ifstream infile (datoteka);
- int brojac=0;
- while (getline (infile, unos))
- {
- ulaz[brojac]=unos;
- brojac++;
- }
- cvor.vrijednost.izraz=ulaz[0];
- cvor.vrijednost.brojRazmaka=0;
- cvor.vrijednost.red=0;
- Roditeljj* korijen;
- korijen=&cvor;
- gradiStablo(cvor,ulaz, brojac);
- traziGresku(cvor);
- ispisStabla (cvor);
- //cout<<ulaz;
- return 0;
- }
- #pragma once
- #include "vrijednosti.h"
- #include <vector>
- #include <string>
- using namespace std;
- class Roditeljj
- {
- public:
- vector <Roditeljj*> pokazivac;
- vrijednosti vrijednost;
- Roditeljj(vrijednosti vrijednost):vrijednost(vrijednost){
- }
- Roditeljj(void);
- ~Roditeljj(void);
- };
- #pragma once
- #include <string>
- #include <iostream>
- #include <vector>
- using namespace std;
- class vrijednosti
- {
- public:
- static vector <string> deklarirano;
- string tip;
- string izraz;
- int l_izraz;
- int red;
- int brojRazmaka;
- void provjeriPrimarniIzraz ();
- vrijednosti(string podaci,int brojRazmaka,int red):izraz(podaci),brojRazmaka(brojRazmaka),red(red){}
- vrijednosti();
- ~vrijednosti(void);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement