-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprueba_listas2.cpp
129 lines (107 loc) · 2.61 KB
/
prueba_listas2.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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include<stdio.h>
#include<iostream>
using namespace std;
struct alum{
int legajo;
int dni;
char sexo;
};
struct Nodo{
alum info;
Nodo * sgte;
};
void agregarPrimero(Nodo *&Lista,alum valor);
alum eliminarPrimero(Nodo *&Lista);
void insertarOrdenado(Nodo*&,alum);
void mostrarAlumnos(Nodo*);
Nodo * buscar(Nodo * Lista, alum valor);
void liberar(Nodo*&lista);
int main(){
Nodo * lista=NULL;
Nodo * aux= NULL;
alum alumno1,alumno2,alumno3,alumno4;
alumno1.dni = 40394493;
alumno1.legajo = 2;
alumno1.sexo = 'M';
alumno2.dni = 1111;
alumno2.legajo = 1;
alumno2.sexo = 'F';
alumno3.dni = 2222;
alumno3.legajo = 3;
alumno3.sexo = 'M';
alumno4.dni = 224522;
alumno4.legajo = 4;
alumno4.sexo = 'M';
insertarOrdenado(lista,alumno2);
insertarOrdenado(lista,alumno1);
insertarOrdenado(lista,alumno3);
insertarOrdenado(lista,alumno4);
mostrarAlumnos(lista);
aux = buscar(lista,alumno2);
if(aux==NULL){
cout << "Alumno no encontrado." << endl;
}
else{
cout << "El legajo : " << aux->info.legajo << " del DNI: " << aux->info.dni << " de sexo " << aux->info.sexo << endl;
}
liberar(lista);
return 0;
}
void agregarPrimero(Nodo *&Lista,alum valor){
Nodo * nuevo = new Nodo();
nuevo->info = valor;
nuevo->sgte = Lista;
Lista = nuevo;
}
alum eliminarPrimero(Nodo *&Lista){
alum ret = Lista->info;
Nodo * aux = Lista;
Lista = Lista->sgte;
delete(aux);
return ret;
}
void insertarOrdenado(Nodo*&lista,alum alumno){
Nodo*nuevo= new Nodo();
nuevo->info.dni = alumno.dni;
nuevo->info.legajo = alumno.legajo;
nuevo->info.sexo = alumno.sexo;
nuevo->sgte = NULL;
Nodo*aux=lista;
Nodo*ant=NULL;
while(aux!=NULL && nuevo->info.legajo > aux->info.legajo ){
ant=aux;
aux=aux->sgte;
}
if(ant==NULL){
lista=nuevo;
}
else{
ant->sgte = nuevo;
}
nuevo->sgte = aux;
}
void mostrarAlumnos(Nodo*lista){
Nodo * aux = lista;
if(aux==NULL){
cout << "No hay alumnos cargados en la lista." << endl;
}
while(aux!=NULL){
cout << "El legajo : " << aux->info.legajo << " del DNI: " << aux->info.dni << " de sexo " << aux->info.sexo << endl;
aux = aux->sgte;
}
}
Nodo * buscar(Nodo * Lista, alum valor){
Nodo * aux=Lista;
while( aux!=NULL && aux->info.legajo != valor.legajo){
aux=aux->sgte;
}
return aux;
}
void liberar(Nodo*&lista){
Nodo*aux=NULL;
while(lista!=NULL){
aux=lista;
lista=lista->sgte;
delete(aux);
}
}