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 | } |