elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  listas enlazadas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: listas enlazadas  (Leído 1,658 veces)
alejandroimparable

Desconectado Desconectado

Mensajes: 1


Ver Perfil
listas enlazadas
« en: 3 Octubre 2017, 07:25 am »

Ejercicio a desarrollar:
• Implementar la lista de asignaturas, como la vista anteriormente, pero utilizando una lista doblemente enlazada y donde la información de cada nodo es:
• Código de la asignatura
• Nombre de la Asignatura.
• Cantidad de Horas.


el codigo es este:


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
using namespace std;
struct nodoasig {
string codigo, descripcion;
int cantidad;
struct nodoasig *siguiente;
};
nodoasig *primero,*ultimo;
void iniciar()
{
primero=NULL;
ultimo=NULL;
}
int vacia()
{
if (primero==NULL)
return 1;
else
return 0;
}
void insertar_delante ( string cod, string nomb, int cant)
{
nodoasig *nodo;
nodo= new nodoasig;
nodo->siguiente=NULL;
nodo->codigo=cod;
nodo->descripcion=nomb;
nodo->cantidad=cant;
if (vacia())
{
primero=nodo;

ultimo=nodo;
}
else
{
nodo->siguiente=primero;
primero=nodo;
}
return;
}
void mostrar ()
{
nodoasig *p;
if (vacia())
cout<<"Lista vacia";
else
{
p = primero ;
while (p != NULL){
cout<< p->codigo<<endl;
cout<< p->descripcion<<endl;
cout<< p->cantidad<<endl;
p = p->siguiente;
getchar();
}
}
return;
}
void eliminar(string valor)
{
nodoasig *p,*q;
q=primero;
p=primero;
while ((p!= NULL) && (p->codigo!=valor))
{
q=p;
p = p->siguiente;

}
if (p==NULL)
cout<<"No existe ese elemento en la lista";
else
{
if (primero==ultimo)
{
primero=NULL;
ultimo=NULL;
}
else
{
q->siguiente=p->siguiente;
if (p==primero)
primero=p->siguiente;
else
if (p==ultimo)
ultimo=q;
}
}
return;
}
int main(int argc, char *argv[])
{
int cant;
string cod, nombre, c;
int opc;
iniciar();
do
{
system("cls");
cout<<" LISTA DE ASIGNATURAS"<<endl;
cout<<" Seleccione la opcion a realizar\n\n";
cout<<" 1.- Insertar una asignatura\n";
cout<<" 2.- Eliminar una asignatura\n";
cout<<" 3.- Mostrar toda la lista de asignaturas\n";
cout<<" 4.- Salir";
cout<<" \n\n\nOpcion(1-4): ";
cin>>opc;
switch(opc)
{
case 1:
cod="";
nombre="";
cant=0;
cout<<"Entre los Datos de la Asignatura:\n ";
cout<<"Codigo o siglas de la Asignatura: \n";
cin>>cod;
cout<<"Nombre de la Asignatura: \n";
cin>>nombre;
cout<<"Cantidad de Horas:\n ";
cin>>cant;
insertar_delante(cod,nombre,cant);
break;
case 2:
cout<<"codigo de la Asignatura a eliminar: \n";
cin>>c;
eliminar(c);
getchar();
break;
case 3:
mostrar();
cout<<"Oprima una tecla para salir";
getchar();
break;
case 4:
exit(0);
break;
}
}
while ((opc!=4));
return 0;
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Listas enlazadas en c++
Programación C/C++
N3r0 3 8,551 Último mensaje 13 Julio 2010, 12:42 pm
por N3r0
[C] Listas enlazadas.
Programación C/C++
The Swash 5 31,604 Último mensaje 26 Octubre 2011, 04:56 am
por brians444
listas enlazadas
Programación C/C++
javier210186 3 2,864 Último mensaje 25 Octubre 2011, 02:33 am
por javier210186
Listas enlazadas por punteros (SOLUCIONADO)
Programación C/C++
berbash116 3 1,427 Último mensaje 3 Enero 2019, 02:18 am
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines