View difference between Paste ID: k7SFUBCL and D4pBCmPP
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
}