Titlul: lista simplu inlantuita. Scris de: savu daniel din 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 ; } |