Bucle infinito en menu
Publicado por C.4 (6 intervenciones) el 30/08/2018 18:47:20
Hola, tenia que hacer un programa con menú de listas, lo pude realizar la lógica de la lista esta sin errores pero cuando decidí colocar el menú se queda en un bucle infinito, me pueden ayudar solo a arreglar la parte del menú?
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
#include<iostream>
#include<stdlib.h>
using namespace std;
struct Nodo{
int dato;
Nodo *sig;
};
void insertarvacia(Nodo *&,Nodo *&,int);
void insertarconaux(Nodo *&,Nodo *&,int);
void mostrar(Nodo *);
void menu();
Nodo *frente=NULL;
Nodo *final=NULL;
int main(){
menu();
}
void menu(){
int opc;
int var;
do{
cout<<"!!!MENU DE LISTA!!!"<<endl;
cout<<"1)para ingresar el primer nodo de la lista: "<<endl;
cout<<"2)para ingresar los demas nodos de la lista: "<<endl;
cout<<"3)para mostar los elementos de la lista: "<<endl;
cout<<"4) para salir:"<<endl;
switch (opc){
case 1:
cout<<"digite el dato:"<<endl;
cin>>var;
insertarvacia(frente,final,var);
cout<<"\n";
break;
case 2:
cout<<"digite el dato:"<<endl;
cin>>var;
insertarconaux(frente,final,var);
cout<<"\n";
break;
case 3:
mostrar(frente);
cout<<"\n";
break;
}
}while(opc!=4);
}
void insertarvacia(Nodo *& frente,Nodo *&final,int var){
Nodo *nuevonodo= new Nodo();
nuevonodo->dato=var;
nuevonodo->sig=NULL;
frente=nuevonodo;
final=nuevonodo;
}
void insertarconaux(Nodo *&frente,Nodo *&final,int var){
Nodo *aux;
Nodo *nuevonodo= new Nodo();
char opc;
nuevonodo->dato=var;
nuevonodo->sig=NULL;
aux=frente;
if(aux==frente){
cout<<"desea ingresar el valor como primero en la lista? s/n:";
cin>>opc;
if(opc=='s'){
nuevonodo->sig=frente;
frente=nuevonodo;
}
}
while(aux!=NULL){
if(aux==final){
cout<<"desea ingresar el valor como ultimo en la lista? s/n:";
cin>>opc;
if(opc=='s'){
final->sig=nuevonodo;
final=nuevonodo;
}
}
else {
cout<<"desea ingresar el valor despues del valor "<<aux->dato<<" ? s/n: " ;
cin>>opc;
if(opc=='s'){
nuevonodo->sig=aux->sig;
aux->sig=nuevonodo;
}
}
aux=aux->sig;
}
}
void mostrar(Nodo *frente){
Nodo *aux= new Nodo();
aux=frente;
while(aux!=NULL){
cout<<aux->dato<<" -> ";
aux=aux->sig;
}
}
Valora esta pregunta


0