PoR FAVOR NECESITO AYUDA URGENTEMENTE,NECESITO UN PROGRAMA DE ESTRUCTURAS DINAMICAS CON UN MENU CON VENTANAS Y FUNCIONES EN C++,DONDE SE PUEDAN INTRODUCIR,ELIMINAR,MODIFICAR..DATOS,PORFAVOR ES URGENTE, MUCHISIMAS GRACIAS
si esto te puede servir mas bien como ejemplo y mirar como funcionan las listas...este ejemplo es de listas circulares:# ifndef PA_h# define PA_h#include <stdio.h>#include <stdlib.h>#include <iostream.h>#include <conio.h>#define TIPO inttypedef struct nodo{ TIPO info; struct nodo *enlace; struct nodo *enlace1;}LISTA;int menu(void);void inserta_final(LISTA **ptr, char elemento);void inserta_or(LISTA **ptr,LISTA **p, char elemento);void orden(LISTA **ptr,LISTA **p);void elim_ele_lista(LISTA **ptr);void buscar_ele(LISTA **ptr,LISTA **p, char elemento);void mostrar_elementos(LISTA **ptr,LISTA **p);void inserta_final(LISTA **ptr,LISTA **p, char elemento){ LISTA *p1, *p2,*aux; p1 = *ptr; if(p1 == NULL) { p1 = new(LISTA); if (p1 != NULL) { p1->info = elemento; p1->enlace = p1; p1->enlace1 = p1; *ptr = p1; *p = p1; } } else { aux=p1; while(p1->enlace != aux) p1 = p1->enlace; p2 = new(LISTA); if(p2 != NULL) { p2->info = elemento; p2->enlace = aux; p1->enlace = p2; p2->enlace1 = p1; aux->enlace1 =p2; *p = p2; } }}int menu(void){ int car; clrscr(); printf("n opcion 1 insertar final elementos en la lista "); printf("n opcion 2 sacar un elemento de la lista"); printf("n opcion 3 insertar ordenadamente"); printf("n opcion 4 ordenar inserci¢n"); printf("n opcion 5 buscar elemento"); printf("n opcion 6 mostrar elementos"); printf("n opcion 7 Exitn"); do{ car=getche(); }while(car<49||car>55); return car;}void elim_ele_lista(LISTA **ptr,LISTA **p){ LISTA *aux,*aux1,*aux2; aux=*ptr; if(aux!=NULL){ if(aux->enlace!=aux){ *ptr=aux->enlace; aux1=*ptr; aux1->enlace1=aux->enlace1; aux2=*p; aux2->enlace=aux1; printf("nnEl elemento eliminado es %c",aux->info); delete(aux); } else { printf("nnEl elemento eliminado es %c",aux->info); delete(aux); *ptr=NULL; *p=NULL; } } else printf("Lista vac¡a");}void inserta_or(LISTA **ptr,LISTA **p, char elemento){ LISTA *p1, *p2,*aux,*aux1; p1 = *ptr; if(p1 == NULL) { p1 = new(LISTA); if (p1 != NULL) { p1->info = elemento; p1->enlace = p1; p1->enlace1 = p1; *ptr = p1; *p = p1; } } else { aux=p1; p2 = new(LISTA);if(elemento<p1->info){ if(p1->enlace==aux) { *ptr=p2; p2->info=elemento; p2->enlace= p1; p2->enlace1=p1; p1->enlace =p2; p1->enlace1=p2; } else { *ptr=p2; p2->info=elemento; p2->enlace=p1; aux1=*p; aux1->enlace=p2; p2->enlace1=aux1; p1->enlace1=p2; }} else{ while(p1->enlace != aux) { aux1=p1->enlace; if((p1->info<elemento&&elemento<aux1->info)|| (p1->info==elemento||elemento==aux1->info)) break; else p1 = p1->enlace; } if(p1->enlace==aux) { p2->info = elemento; p2->enlace = aux; p1->enlace = p2; p2->enlace1 = p1; aux->enlace1 =p2; *p = p2; } else { p2->info=elemento; aux1=p1->enlace; p1->enlace=p2; p2->enlace1=p1; p2->enlace=aux1; aux1->enlace1=p2; } }} }void orden(LISTA **ptr,LISTA **p){ LISTA *x3,*p1, *p2,*aux,*aux1,*x,*x1=NULL,*i=NULL,*j=NULL,*m; char elemento; x=*ptr; x3=x; if(*ptr!=NULL) {do{ p1=x1; elemento=x->info; if(p1==NULL) { p1=new(LISTA); p1->info=elemento; p1->enlace=p1; p1->enlace1=p1; i=p1; j=p1; x1=p1; } else{ p2=new(LISTA); p2->info=elemento;if(elemento<p1->info){ aux1=p1->enlace1; p2->enlace=p1; p1->enlace1=p2; p2->enlace1=aux1; aux1->enlace=p2; i=p2; x1=p2;}else{ while(p1->enlace!=x1) { aux=p1->enlace;if((elemento>p1->info&&elemento<aux->info)||(elemento==p1->info)) break;else p1=p1->enlace;}if(p1->enlace!=x1){ p2->enlace=aux; p2->enlace1=p1; p1->enlace=p2; aux->enlace1=p2;}else if(p1->enlace==x1) { p2->enlace1=p1; p1->enlace=p2; p2->enlace=x1; x1->enlace1=p2; j=p2; }}}m=x->enlace;delete(x);x=m;}while(x!=x3);printf("Ordenaci¢n con ‚xito");*ptr=i;*p=j;}elseprintf("Lista Vac¡a");}void buscar_ele(LISTA **ptr,LISTA **p,char elemento){ LISTA *aux,*aux1; aux=*ptr; aux1=*p; aux1=aux1 ->enlace; if(aux!=NULL){ while(aux->enlace!=aux1&&aux->info!=elemento){ aux=aux->enlace; } if(aux->info==elemento) { printf("nnEl elemento es %c , ubicado en la posici¢n %p ",aux->info,aux); } else printf("nnEl elemento no existe"); } else printf("nnLista vac¡a");}void mostrar_elementos(LISTA **ptr,LISTA **p){ LISTA *aux,*aux1,*aux2; aux=*ptr; aux1=*p; aux1=aux1->enlace; if(aux!=NULL){ printf("Los elementos son:nn"); while(aux->enlace!=aux1){ printf("El elemento %c , est ubicado en la posici¢n %p n",aux->info,aux); aux=aux->enlace; } printf("El elemento %c , est ubicado en la posici¢n %p n",aux->info,aux); } else printf("nnLista vac¡a");}# endif:D