Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: lista simplu inlantuita.  (Citit de 2886 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
danutz1996
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« : Octombrie 10, 2016, 21:29:55 »

Algoritumul de mai jos creaza o lista simplu inlantuita, si adauga n elemente in ea.
Certinta problemei este sa se parcurga lista si sa se insereze caraterul p inaintea caracterului q ori de cate ori acesta apare in lista. Am reusit sa  inserez q inaintea lui p o data dar nu imi iese algoritmul in asa fel incat sa caute toate  nodurile care contin caracterul q. Stie cineva ce modificare ar trebui sa fac ca sa indeplineasca cerinta ?


#include <iostream>
using namespace std ;
struct nod
{ char carcater;
  nod* urm;
};
nod *cap ,  *sf;
 
void creare_nod ()
{ if (cap==NULL)
{ cap = new nod  ;
cout << " Introduceti caracterul primului nod: " ;
cin >> cap ->carcater;
cap->urm=NULL;
sf=cap;
}
else
{
  nod *nod_nou;
  nod_nou=new nod ;
  cout<< " Introduceti valoarea de adaugat in lista: ";
  cin >>nod_nou->carcater;
  sf->urm=nod_nou ;
  sf=nod_nou ;
  sf->urm = NULL ;
}
}

void afisare_lista()
{nod *afisare;
afisare= cap ;
while (!afisare ==NULL)
{ cout <<afisare->carcater<<" ";
afisare=afisare->urm;
}
cout<<"\n";
}

void a (int val)
{nod *c ;
c=cap ;
c= new nod ;
cin >> c->carcater;
c->urm=cap ;
cap=c;
}
void inserare_inainte(char val_cautat,char val_introdus)
{
   nod *c,*a;
c=cap;
 

while (c->urm->carcater!=val_cautat&&c)
   c=c->urm ;
a= new nod ;
a->carcater=val_introdus ;
a->urm=c->urm;
c->urm=a;




}

int main ()
{ int val=4,nr_noduri;
cout << "Introduceti numarul de noduri: "  ;
cin >> nr_noduri ;
for (int i=1;i<=nr_noduri;i++)
   creare_nod() ;

   afisare_lista();
   inserare_inainte('q','p');
   
   afisare_lista() ;
   
   return 0 ;
}
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines