Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FIFO pickric_infix(nodot*R, int &n, int k){
- if(!R){
- FIFO j;
- return j;
- }
- else{
- FIFO h = pickric_infix(R->left,n,k);
- if(n == k){
- //cout << "DENTRO" << endl;
- nodo *f = new nodo;
- f->info = R->info;
- f->next = NULL;
- h = push_end(h, f);
- n = 0;
- }
- n++;
- return concF(h,pickric_infix(R->right,n,k));
- }
- }
- // PRE=(L(Q) è corretta,vL(Q)=L(Q))
- FIFO tieni_primo(nodo *&Q){
- FIFO L;
- nodo *y = NULL;
- nodo *t = NULL;
- nodo *s = Q;
- while(s != NULL){
- y = s;
- while(y->next != NULL){
- if(y->next->info == s->info){
- t = y->next;
- y->next = y->next->next;
- t->next = NULL;
- L = push_end(L,t);
- }
- else{
- y = y->next;
- }
- }
- s = s->next;
- }
- return L;
- }
- /*
- POST=(L(Q) è vL(Q) in cui sono stati eliminati i nodi che hanno un campo info tale che un nodo alla loro
- sinistra abbia lo stesso campo info. Quindi per ogni valore info resta solo il primo nodo con quel valore. La
- lista dei nodi eliminati va gestita da un valore FIFO restituito col return)
- */
- main(){
- int test,n_el, k, n=1;
- cin>>test>>n_el>>k;
- nodot* R = build_tree(0,n_el);
- cout<<"albero:"<<endl;
- stampa(R);
- FIFO x = pickric_infix(R,n,k);
- cout << endl<<"lista creata:"<<endl;
- stampa_lista(x.primo);
- if(test>0){
- FIFO y = tieni_primo(x.primo);
- cout<<"lista dei nodi tolti"<<endl;
- stampa_lista(y.primo);
- cout<<"lista dei nodi che restano"<<endl;
- stampa_lista(x.primo);
- }
- cout<<endl<<"end"<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement