SHOW:
|
|
- or go back to the newest paste.
| 1 | void inserare_fata(nod *&prim, int nr) | |
| 2 | {
| |
| 3 | nod *p = new nod; | |
| 4 | p -> info = nr; | |
| 5 | p -> urm = prim; | |
| 6 | prim = p; | |
| 7 | } | |
| 8 | ||
| 9 | void inserare_spate(nod *&prim, nod *&ultim, int nr) | |
| 10 | {
| |
| 11 | nod *p; | |
| 12 | p = new nod; | |
| 13 | p -> info = nr; | |
| 14 | p -> urm = NULL; | |
| 15 | if(ultim != NULL) | |
| 16 | ultim -> urm = p | |
| 17 | else | |
| 18 | prim = p; | |
| 19 | ultim = p; | |
| 20 | } | |
| 21 | ||
| 22 | void inserare_inainte(nod *p, nod *&prim, nod *&ultim, int nr) | |
| 23 | {
| |
| 24 | nod *q; | |
| 25 | q = new nod; | |
| 26 | q -> info = p -> info; | |
| 27 | p -> info = nr; | |
| 28 | q -> urm = p -> urm; | |
| 29 | p -> urm = q; | |
| 30 | if(p == ultim) | |
| 31 | ultim = q; | |
| 32 | } | |
| 33 | ||
| 34 | void inserare_dupa(nod *p, nod *&prim, nod *&ultim, int nr) | |
| 35 | {
| |
| 36 | nod *q; | |
| 37 | if(prim) | |
| 38 | {
| |
| 39 | p = prim; | |
| 40 | prim = prim -> urm; | |
| 41 | delete p; | |
| 42 | if(prim == NULL) | |
| 43 | ultim = NULL; | |
| 44 | } | |
| 45 | else cout << "Lista vida."; | |
| 46 | } | |
| 47 | ||
| 48 | - | void sterg_inceput(nod *&prim, nod *&ultim) |
| 48 | + | void stergere(nod *&q) |
| 49 | {
| |
| 50 | nod *p = prim; | |
| 51 | if(p == q) {
| |
| 52 | prim = p -> urm; | |
| 53 | delete q; | |
| 54 | } | |
| 55 | else if(ultim == q) {
| |
| 56 | for(p = prim; p -> urm -> urm != NULL; p = p -> urm) | |
| 57 | ultim = p; | |
| 58 | ultim -> urm = NULL; | |
| 59 | delete q; | |
| 60 | } | |
| 61 | - | void sterg_end(nod *&prim, nod *&ultim) |
| 61 | + | else {
|
| 62 | p = prim; | |
| 63 | while(p -> urm != NULL) | |
| 64 | - | if(ultim) |
| 64 | + | p = p -> urm; |
| 65 | - | if(prim == ultim) {
|
| 65 | + | p -> urm = p -> urm -> urm; |
| 66 | - | delete prim; |
| 66 | + | delete q; |
| 67 | - | prim = ultim = NULL; |
| 67 | + | |
| 68 | - | } |
| 68 | + | |
| 69 | - | else {
|
| 69 | + | |
| 70 | - | p = prim; |
| 70 | + | |
| 71 | - | while(p -> urm != ultim) |
| 71 | + | |
| 72 | - | p = p -> urm; |
| 72 | + | |
| 73 | - | p -> urm = NULL; |
| 73 | + | |
| 74 | - | delete ultim; |
| 74 | + | |
| 75 | - | ultim = p; |
| 75 | + | |
| 76 | - | } |
| 76 | + | |
| 77 | ||
| 78 | void push(nod *&vf, int x) | |
| 79 | {
| |
| 80 | - | void sterg_nod(nod *p, nod *&prim, nod *&ultim) |
| 80 | + | |
| 81 | p = new nod; | |
| 82 | p -> info = x; | |
| 83 | - | if (p == prim) |
| 83 | + | p -> urm = vf; |
| 84 | - | sterg_inceput(prim, ultim); |
| 84 | + | vf = p; |
| 85 | - | else if(p == ultim) |
| 85 | + | |
| 86 | - | sterg_end(prim, ultim); |
| 86 | + | |
| 87 | void pop(nod *&vf, int &x) | |
| 88 | {
| |
| 89 | - | q = p -> urm; |
| 89 | + | if(vf != NULL) |
| 90 | - | p -> info = q -> info; |
| 90 | + | |
| 91 | - | p -> urm = q -> urm; |
| 91 | + | p = vf; |
| 92 | - | delete q; |
| 92 | + | x = p -> info; |
| 93 | cout << "info se va afisa" << x; | |
| 94 | vf = p -> urm; | |
| 95 | delete p; | |
| 96 | } | |
| 97 | else cout << " Nu exista niciun element in lista"; | |
| 98 | } |