Sábado 14 de Diciembre de 2024, 22:34
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
pila con listas y clases
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: pila con listas y clases (Leído 1047 veces)
dunkelheit
Nuevo Miembro
Mensajes: 14
pila con listas y clases
«
en:
Sábado 7 de Noviembre de 2009, 00:41 »
0
hola tenia un problema de invertir el orden de una fila secuencial y la idea era guardarla en una pila y luego pasarla a otra fila , hize mi programa pero lo quise hacer con mas funciones para hacerlo mas ordenados, el problema es que al poner de argumento la pila al empilar ...no empila.
Código: C++
#include <iostream>
#include <conio.h>
using
namespace
std
;
struct
nodo
{
int
valor
;
nodo
*
sig
;
}
;
class
pila
{
private
:
nodo
*
cima
;
public
:
void
empilar
(
int
)
;
int
desempilar
(
)
;
void
mostrar
(
)
;
pila
(
)
;
~pila
(
)
;
}
;
pila
::
pila
(
)
{
cima
=
NULL
;
}
pila
::
~pila
(
)
{
nodo
*
n
=
new
nodo
;
n
=
cima
;
while
(
n
!
=
NULL
)
{
cima
=
n
;
n
=
n
-
>
sig
;
delete
(
cima
)
;
}
delete
(
n
)
;
}
void
pila
::
empilar
(
int
v
)
{
nodo
*
nuevo
=
new
nodo
;
nuevo
-
>
valor
=
v
;
nuevo
-
>
sig
=
NULL
;
if
(
cima
!
=
NULL
)
{
nuevo
-
>
sig
=
cima
;
}
cima
=
nuevo
;
}
int
pila
::
desempilar
(
)
{
int
valor
;
if
(
cima
==
NULL
)
cout
<<
"Pila vacia"
;
else
{
valor
=
cima
-
>
valor
;
cima
=
cima
-
>
sig
;
}
return
valor
;
}
void
pila
::
mostrar
(
)
{
nodo
*
n
=
new
nodo
;
n
=
cima
;
if
(
n
==
NULL
)
{
cout
<<
"nVACIO"
<<
endl
;
}
while
(
n
!
=
NULL
)
{
cout
<<
"Valor:"
<<
n
-
>
valor
<<
endl
;
n
=
n
-
>
sig
;
}
}
int
menu
(
)
{
int
op
;
cout
<<
"[1]Crear fila"
<<
endl
;
cout
<<
"[2]Invertir fila"
<<
endl
;
cout
<<
"elegir:"
;
cin
>>
op
;
return
op
;
}
void
fila
(
)
{
FILE
*
F
;
int
n,dato
;
F
=
fopen
(
"datos.txt"
,
"a+"
)
;
cout
<<
"cuantos datos desea ingresar:"
;
cin
>>
n
;
for
(
int
i
=
0
;
i
<
n
;
i
++
)
{
cout
<<
"escribe el dato:"
;
cin
>>
dato
;
fwrite
(
&
dato,
sizeof
(
dato
)
,
1
,F
)
;
}
fclose
(
F
)
;
}
int
empilarfila
(
pila p
)
{
FILE
*
F
;
int
dato,i
=
0
;
F
=
fopen
(
"datos.txt"
,
"r"
)
;
fread
(
&
dato,
sizeof
(
dato
)
,
1
,F
)
;
while
(
!
feof
(
F
)
)
{
cout
<<
"empilando:"
<<
dato
<<
endl
;
p.
empilar
(
dato
)
;
fread
(
&
dato,
sizeof
(
dato
)
,
1
,F
)
;
i
++
;
}
return
i
;
}
void
desempilarfila
(
int
n,pila p
)
{
FILE
*
G
;
int
dato
;
G
=
fopen
(
"back.txt"
,
"a+"
)
;
for
(
int
i
=
0
;
i
<
n
;
i
++
)
{
dato
=
p.
desempilar
(
)
;
fwrite
(
&
dato,
sizeof
(
dato
)
,
1
,G
)
;
}
fclose
(
G
)
;
}
int
main
(
)
{
pila p1
;
int
opcion,n
;
do
{
opcion
=
menu
(
)
;
if
(
opcion
==
1
)
{
fila
(
)
;
}
else
{
if
(
opcion
==
2
)
{
n
=
empilarfila
(
p1
)
;
p1.
mostrar
(
)
;
//desempilarfila(n,p1);
}
}
}
while
(
opcion
)
;
return
0
;
}
espero que me puedan ayudar cual seria el problema ..gracias
Tweet
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
pila con listas y clases