Cuál es el error en el código?
Publicado por AlbertoPérez (3 intervenciones) el 22/10/2018 00:12:34
Buenas tardes a todos. Por favor me pueden ayudar, lo que pasa es que al querer eliminar el primer nodo no lo elimina. Solo puedo eliminar los demás y no he identificado cuál sería el error en el programa. De antemano muchas gracias.
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
128
129
130
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Listas
{
class ListasCirculares
{
private Nodo Primero = new Nodo();
private Nodo Ultimo = new Nodo();
class Nodo
{
public int edad;
public Nodo sig;
}
private Nodo raiz;
public ListasCirculares()
{
raiz = null;
}
public void Insertar(int x)
{
Nodo aux = null;
Nodo nuevo = new Nodo();
nuevo.edad = x;
if (raiz == null)
{
raiz = nuevo;
raiz.sig = raiz;
}
else
{
aux = raiz;
while (aux.sig != raiz)
{
aux = aux.sig;
}
aux.sig = nuevo;
}
nuevo.sig = raiz;
}
public void Eliminar()
{
Nodo nuevo = new Nodo();
nuevo = raiz;
Nodo Anterior = new Nodo();
Anterior = null;
bool Encontrado = false;
Console.Write("Ingrese el nodo a eliminar: ");
int nodoBuscado = int.Parse(Console.ReadLine());
if (raiz != null)
{
while (nuevo != null && Encontrado != true)
{
if (nuevo.edad == nodoBuscado)
{
Console.WriteLine("\n El nodo con el dato ( {0} ) Encontrado\n", nodoBuscado);
if (nuevo == raiz)
{
raiz = raiz.sig;
}
else if (nuevo == Ultimo)
{
Anterior.sig = null;
Ultimo = Anterior;
}
else
{
Anterior.sig = nuevo.sig;
}
Console.WriteLine("\n Nodo eliminado\n");
Encontrado = true;
}
Anterior = nuevo;
nuevo = nuevo.sig;
}
if (!Encontrado)
{
Console.WriteLine("\n Nodo no Encontrado\n");
}
}
else
{
Console.WriteLine("\n La lista se encuentra vacía\n");
}
}
public void Imprimir()
{
Nodo aux = raiz;
do
{
Console.WriteLine("Edad " + aux.edad);
aux = aux.sig;
} while (aux != raiz);
}
static void Main(string[] args)
{
ListasCirculares NuevaPila = new ListasCirculares();
NuevaPila.Insertar(18);
NuevaPila.Insertar(19);
NuevaPila.Insertar(20);
NuevaPila.Imprimir();
NuevaPila.Eliminar();
NuevaPila.Imprimir();
Console.ReadKey();
}
}
}
Valora esta pregunta


0