Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- Lista simplu inlantuita
- a - adaugare element
- e - eliminare element
- P - Afisare element
- q - iesire
- **/
- #include <iostream>
- using namespace std;
- struct Nod
- {
- int data;
- Nod* next;
- };
- void afiseazaMesajCuOptiuniDisponibile()
- {
- cout << "optiuni disponibile:" << endl;
- cout << "\t a - adaugare element" << endl;
- cout << "\t e - eliminare element" << endl;
- cout << "\t p - afisare element" << endl;
- cout << "\t q - iesire" << endl;
- }
- char citireOptiune()
- {
- char op;
- afiseazaMesajCuOptiuniDisponibile();
- cin >> op;
- return op;
- }
- Nod* citesteElementNou()
- {
- Nod* nou = new Nod;
- cout << "introduceti valoarea noului nod" << endl;
- cin >> nou->data;
- return nou;
- }
- void adaugaElementDupaElemCurent(Nod &elementNou, Nod &elementCurent)
- {
- elementNou.next = elementCurent.next;
- elementCurent.next = &elementNou;
- }
- void adaugaElement(Nod &curent)
- {
- Nod* elemNou = citesteElementNou();
- adaugaElementDupaElemCurent(*elemNou,curent);
- }
- bool trebuieEliminatElemUrm(Nod &curent, int deEliminat)
- {
- if (curent.next == NULL)
- return false;
- return curent.next->data;
- }
- void eliminaElemUrm(Nod &curent)
- {
- Nod* deEliminat = curent.next;
- curent.next = deEliminat->next;
- cout << "curent.data=" << curent.data << endl;
- delete deEliminat;
- }
- void eliminaElement(Nod &lista)
- {
- int deEliminat;
- cout << "introduceti valoarea de eliminat: ";
- cin >> deEliminat;
- Nod* i = &lista;
- while (i!=NULL)
- {
- if (trebuieEliminatElemUrm(*i,deEliminat))
- {
- eliminaElemUrm(*i);
- }
- else
- {
- i = i->next;
- }
- }
- }
- void afiseazaElement(Nod &lista)
- {
- Nod* i = lista.next;
- while (i != NULL)
- {
- cout << i->data << " ";
- i = i->next;
- }
- cout << endl;
- }
- void proceseazaOptiune(char op, Nod &lista)
- {
- switch (op)
- {
- case 'a': adaugaElement(lista); break;
- case 'e': eliminaElement(lista); break;
- case 'p': afiseazaElement(lista); break;
- case 'q': break;
- default: cout << "optiune gresita" << endl; break;
- }
- }
- int main()
- {
- Nod lista;
- lista.next = NULL;
- char op;
- do
- {
- op = citireOptiune();
- proceseazaOptiune(op, lista);
- } while (op!='q');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement