-
Notifications
You must be signed in to change notification settings - Fork 0
/
clase_05-05-14.c
115 lines (98 loc) · 2.01 KB
/
clase_05-05-14.c
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
/*
Utilizando el archivo lista.c facilitado gentilmente por la docente, realizar la siguiente funcion:
-Funcion de tipo entero que retorne la cantidad de nodos de la lista.
*/
#include <stdio.h>
#include <stdlib.h>
struct Nodo
{
char Dato;
struct Nodo *sgte;
};
typedef struct Nodo Lista;
typedef Lista *PtrLista;
void Insertar (PtrLista *,char);
void ImprimirLista(PtrLista);
void Eliminar(PtrLista*);
int Contador(PtrLista);
main()
{
PtrLista PtrInicio=NULL;
char Dato;
Dato='c';
Insertar(&PtrInicio,Dato);
Dato='w';
Insertar(&PtrInicio,Dato);
Dato='b';
Insertar(&PtrInicio,Dato);
ImprimirLista(PtrInicio);
Eliminar(&PtrInicio);
ImprimirLista(PtrInicio);
Contador(PtrInicio);
getche();
}
void Insertar(PtrLista *PIni,char Valor)
{
PtrLista PtrNuevo,PtrActual;
PtrNuevo =(Lista *) malloc(sizeof(Lista));
if(PtrNuevo != NULL)
{
PtrNuevo->Dato=Valor;
PtrNuevo->sgte=NULL;
//EN EL CASO QUE LA LISTA ESTA VACIA
PtrActual=*PIni;
if (PtrActual==NULL)
{
PtrNuevo->sgte=NULL;
*PIni=PtrNuevo;
}
else
{
while (PtrActual->sgte!=NULL )
PtrActual=PtrActual->sgte;
PtrActual->sgte=PtrNuevo;
}
}
}
void Eliminar(PtrLista *PIni)
{
PtrLista PtrActual,PtrAux;
PtrActual=*PIni;
if (PtrActual->sgte==NULL)
{
*PIni=NULL;
free(PtrActual);
}
else
{
while (PtrActual->sgte->sgte!=NULL )
PtrActual=PtrActual->sgte;
PtrAux=PtrActual->sgte;
PtrActual->sgte=NULL;
free(PtrAux);
}
}
int Contador (PtrLista PtrActual){
int contador1=0;
while (PtrActual!=NULL)
{
contador1++;
PtrActual=PtrActual->sgte;
}
printf("La cantidad de nodos es: %d",contador1);
return 0;
}
void ImprimirLista(PtrLista PtrActual)
{
if (PtrActual==NULL)
printf("La lista esta vacia");
else
{
printf ("La lista es la siguiente:\n\n");
while (PtrActual!=NULL)
{
printf("[%c]-->",PtrActual->Dato );
PtrActual=PtrActual->sgte;
}
}
}