Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- struct nodo{
- float peso;
- int posicion;
- nodo *siguiente;
- };
- void insertar(nodo *&,nodo *&,float,int);
- void mostrar(nodo *,nodo *);
- void vaciar(nodo *&,int);
- int main() {
- nodo *lista=NULL,*primero=NULL;
- char opc;
- int contador=0;
- float peso_aux;
- do{
- cout<<"**** MENU ****"<<endl;
- cout<<"1. Cargar un nodo"<<endl;
- cout<<"2. Mostrar lista"<<endl;
- cout<<"S. Salir"<<endl;
- cout<<"Ingrese opcion:";
- cin>>opc;
- switch(opc){
- case '1':
- cout<<"Ingrese el peso a cargar: ";
- cin>>peso_aux;
- insertar(lista,primero,peso_aux,contador);
- cout<<"Cargado con exito"<<endl<<endl;
- contador++;
- break;
- case '2':
- cout<<"Mostrando lista: ";
- mostrar(lista,primero);
- cout<<endl<<endl;
- break;
- case 's':
- case 'S':
- cout<<"Saliendo del programa...";
- vaciar(lista,contador);
- break;
- default:
- cout<<"Error: Ingrese una opcion valida"<<endl;
- break;
- }
- } while(opc!='s' && opc!='S');
- return 0;
- }
- void insertar(nodo *&a,nodo *&b,float c,int d){ // lista - primero - peso - posicion
- nodo *nuevo=(nodo *)malloc(sizeof(nodo)),*aux=a;
- nuevo->peso=c;
- nuevo->posicion=d;
- if(a==NULL){
- nuevo->siguiente=nuevo;
- b=nuevo;
- a=nuevo;
- }
- else{
- while(aux->siguiente!=b){
- aux=aux->siguiente;
- }
- nuevo->siguiente=b;
- aux->siguiente=nuevo;
- }
- }
- void mostrar(nodo *a,nodo *b){ // lista - primero
- nodo *aux=a;
- if(aux!=NULL){
- do{
- cout<<aux->peso<<":"<<aux->posicion<<" - ";
- aux=aux->siguiente;
- }while(aux!=b);
- }
- }
- void vaciar(nodo *&a,int b){ // lista - contador
- nodo *aux=a,*anterior=NULL;
- while(b>0){
- anterior=aux;
- aux=aux->siguiente;
- free(anterior);
- b--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement