Foros del Web » Programación para mayores de 30 ;) » C/C++ »

sobre listas enlazadas en c++

Estas en el tema de sobre listas enlazadas en c++ en el foro de C/C++ en Foros del Web. tengo un programa que maneja listas enlazadas y pase de parametros con cola(fila), ahora necesito el mismo pero que se maneje como pila(el primer valor ...
  #1 (permalink)  
Antiguo 14/07/2009, 17:55
 
Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
sobre listas enlazadas en c++

tengo un programa que maneja listas enlazadas y pase de parametros con cola(fila), ahora necesito el mismo pero que se maneje como pila(el primer valor que se ingresa es el ultimo en salir), aqui les dejo el programa que les digo aver si me pueden ayudar:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream.h>

struct nodo
{
int info;
nodo *ptr;


};

void insertar(struct nodo *&Lista, int &contador)
{
nodo *aux;
nodo *temp;
contador++;


if(contador==1)
{

aux=(nodo*)malloc(sizeof(nodo));
printf("\n Ingrese el valor del nodo: ");
scanf("%d",&aux->info);
aux->ptr=NULL;
Lista=aux;
}
else
{
temp=Lista;
while (temp->ptr!=NULL)
{
temp=temp->ptr;
}
aux=(struct nodo *)malloc(sizeof(nodo));
printf("\n Ingrese el valor del nodo: ");
scanf("%d",&aux->info);
aux->ptr=NULL;
temp->ptr=aux;
}
}
void mostrar (nodo *Lista, int contador)
{
nodo *temp;
temp=Lista;
while (temp!=NULL)
{
printf("%d | ",temp->info);
temp=temp->ptr;
}
printf("\nHay %d elementos en la lista\n",contador);
}
void eliminar(struct nodo *&Lista, int &contador)
{
nodo *aux;

if(contador>0)
{
aux=Lista;
Lista=aux->ptr;
free(aux);
contador--;
}
else
{
printf("\nNo hay elementos en la lista para eliminar\n");
}
}
void buscar (struct nodo *Lista)
{
int buscar,buscado;
int encontrado=0;

printf("\nElemento a buscar: \n");
scanf("%d",&buscado);

while (Lista!=NULL && encontrado==0)
{
if(Lista->info==buscado)
{
encontrado=1;
}
else
{
Lista=Lista->ptr;
}
}
if (encontrado==1)
printf("\nElemento encontrado en lista\n");

else
printf("\nEl elemento no existe en lista\n");

}


main()
{
struct nodo *Lista;
Lista=NULL;
int opcion, contador=0;

do{
printf("\n\t--- MENU DE OPCIONES ---\n\n");
printf("\t1.- Agregar elemento\n");
printf("\t2.- Eliminar elemento\n");
printf("\t3.- Mostrar elementos\n");
printf("\t4.- Buscar un elemento\n");
printf("\t5.- Salir\n");
printf("\n\tOpcion a elegir: ");
scanf("%d",&opcion);

switch (opcion)
{
case 1:
insertar(Lista,contador);
printf("Hay %d elementos en la lista\n",contador);
break;

case 2:
eliminar(Lista,contador);
break;

case 3:
mostrar(Lista,contador);
break;

case 4:
buscar(Lista);
break;
}
}
while (opcion!=5);
}

de antemano gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:48.