trabajo desarollo punteros

Download Trabajo Desarollo Punteros

If you can't read please download the document

Upload: krisz-garcia

Post on 19-Jan-2016

3 views

Category:

Documents


0 download

TRANSCRIPT

#include#include#include#include#include/*Definicion de la Estructura*/struct nodoLista{int dato;struct nodoLista *ptrSiguiente; //Apuntador al siguiente nodo};typedef struct nodoLista NodoLista;/*Prototipos*/void insertar();void estaVacia(NodoLista *ptrActual);void imprimeLista(NodoLista *ptrActual);void instrucciones(void);void eliminar();//El puntero ptrInicial se usa para indicar cual es el primer elemento de la lista//El puntero ptrActual se usa para hacer referencia al ultimo elemento del nodo insertadonodoLista *ptrInicial = NULL, *ptrActual = NULL, *X=NULL, *ptrTemp=NULL, *Anterior=NULL, *Y=NULL; // Inicialmente no existen nodosnodoLista *ptrNuevo;void main(){int eleccion; //Almacena el valor de la opcion que se va a ejecutar eleccion = 0;while(eleccion !=5){system("cls");instrucciones(); //despliega el menuprintf("\n?");scanf("%d", &eleccion);if(eleccion == 1)insertar();if(eleccion ==2){imprimeLista(ptrInicial);getch();}if(eleccion ==3){estaVacia(ptrInicial);getch();}if(eleccion ==4){eliminar(); getch();}if(eleccion ==5)free(ptrNuevo);if(eleccion>5){printf("\nDebes teclear un numero entre 1 y 5\n");getch();}}}//MENU PRINCIPAL//void instrucciones(void){printf("Introduzca su eleccion:\n");printf("[1]Insertar un elemeneto.\n"); printf("[2]Imprimir lista.\n");printf("[3]Status de la lista.\n");printf("[4]Eliminar.\n");printf("[5]Salir.\n");}void insertar(){int num;num=0;ptrNuevo= (NodoLista *) malloc (sizeof(NodoLista));if(ptrNuevo !=NULL){printf("Teclee un numero entero: ");scanf("%d", &num);ptrNuevo->dato=num;ptrNuevo->ptrSiguiente=NULL;if(ptrInicial==NULL){ptrInicial=ptrNuevo;ptrActual=ptrNuevo;}else{ptrActual->ptrSiguiente=ptrNuevo;ptrActual=ptrNuevo;}}else{printf("No se inserto %d. No hay memoria disponible.\n",num);}}void estaVacia(NodoLista *ptrInicial){if (ptrActual==NULL)printf("La lista esta vacia");elseprintf("La lista contiene elementos");}void imprimeLista(NodoLista *ptrInicial){if (ptrInicial==NULL)printf("La lista esta vacia");else{system("cls");printf("\nLISTA DE ELEMENTOS\n");while (ptrInicial!=NULL){printf(" %d\n\n",ptrInicial->dato);ptrInicial=ptrInicial->ptrSiguiente;}}} void eliminar(){int E=0;system ("cls");imprimeLista (ptrInicial);// Despliega la lista de elementos a eliminar printf(" Teclee el Elemento que desea eliminar: ");scanf("%d", &E);if (ptrInicial != NULL){X = ptrInicial;}if (E == ptrInicial->dato){ptrTemp=ptrInicial;ptrInicial=X->ptrSiguiente;free(ptrTemp);printf("\nELIMINADO\n");}else{Anterior=ptrInicial;Y=ptrInicial->ptrSiguiente;}while(Y != NULL && Y->dato != E) {Anterior=Y;Y=Y->ptrSiguiente;}if(Y != NULL){Anterior->ptrSiguiente = Y->ptrSiguiente;free(Y); printf("\nELIMINADO\n");}}