-
Notifications
You must be signed in to change notification settings - Fork 1
/
Ejercicio 7 Labo 3.cpp
110 lines (98 loc) · 1.72 KB
/
Ejercicio 7 Labo 3.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* File: Ejercicio 7.cpp
* Author: funda
*
*/// Created on 8 de octubre de 2019, 06:13 PM
#include <cstdlib>
#include <time.h>
#include <iostream>
using namespace std;
struct Lista
{
int Dato;
Lista *sig;
}*Inicio=nullptr;
void llenar(int dato, Lista *&p)
{
if(Inicio==nullptr)
{
Lista *nuevo = new Lista();
nuevo->Dato=dato;
nuevo->sig= nullptr;
Inicio=nuevo;
}
else
{
if(p->sig==nullptr)
{
Lista *nuevo = new Lista();
nuevo->Dato= dato;
nuevo->sig= nullptr;
p->sig = nuevo;
return;
}
else
{
llenar(dato,p->sig);
}
}
}
void mostrar(Lista *&p)
{
if(p->sig==nullptr)
{
cout<<p->Dato<<endl;
return;
}
else
{
cout<< p->Dato<<" ";
mostrar(p->sig);
}
}
void eliminar (Lista *&p, int elim)
{
Lista *temp;
Lista *q = nullptr;
temp = p;
while((temp!=nullptr) && (temp->Dato != elim))
{
q = temp;
temp = temp->sig;
}
if(temp== nullptr)
{
cout<<"El elemento no esta en la lista."<<endl;
}
else if(q== nullptr)
{
p=p->sig;
delete temp;
}
else
{
q->sig = temp->sig;
delete temp;
}
}
int main()
{
int n;
cout<<"Cuantos elementos en la lista? "<<endl;
cin>>n;
int random;
srand(time(NULL));
for(int i=0;i<n;i++)
{
random=rand()%100+1;
llenar(random,Inicio);
}
cout<<"La lista es: "<<endl;
mostrar(Inicio);
int elim;
cout<<"Que elemento desea eliminar ?"<<endl;
cin>>elim;
eliminar(Inicio,elim);
cout<<"La lista es: "<<endl;
mostrar(Inicio);
return 0;
}