none
Ayuda chicos necesito crear la funcion borrar a esta estructura. RRS feed

  • Pregunta

  • #include<stdio.h>
    #include<windows.h>
    
    //Declaración de funciones prototipo
    void inicializar();
    void ingresar();
    void visualizar();
    int borrar(void);
    int vacia();
    
    //Declaración del cuerpo de la estructura
    typedef struct datos nodo;
    struct datos
    {
    	char nombre[100];
    	int matricula;
    	nodo*siguiente;
    }
    *n, *primero, *ultimo;
    int nodos = 0;
    
    //Declaración de función principal main()
    void main()
    {
    	int opcion;
    
    	inicializar();
    	
    	do
    	{
    		system("CLS");
    		printf("Binvenido, elige una opcion:\n");
    		printf("1. Ingresar datos a la fila\n");
    		printf("2. Visualizar la fila\n");
    		printf("3. Busqueda de Datos\n");
    		printf("4. Salir");
    		scanf_s("%i", &opcion);
    
    		if (opcion == 1)
    			ingresar();
    		if (opcion == 2)
    			visualizar();
    		if (opcion == 3)
    			borrar();
    		if (opcion == 4)
    			break;
    	}
    
    
    	while (opcion > 0);
    	system("PAUSE");
    	return;
    }
    //Declaración de funciones para operaciones
    void inicializar()
    {
    	n = primero = ultimo = NULL;
    	return;
    }
    
    int vacia()
    {
    	if (primero == NULL)
    		return 1;
    	else
    		return 0;
    }
    void ingresar()
    {
    	if (vacia())
    	{
    		n = (nodo*)malloc(sizeof(nodo));
    		primero = ultimo = n;
    		printf("Ingresa el nombre:");
    		scanf("%s", &n->nombre);
    		printf("Ingresa la matrícula:");
    		scanf("%i", &n->matricula);
    		n->siguiente = NULL;
    		nodos++;
    	}
    	else
    	{
    		n = (nodo*)malloc(sizeof(nodo));
    		printf("Ingresa el nombre:");
    		scanf("%s", &n->nombre);
    		printf("Ingresa la matrícula:");
    		scanf("%i", &n->matricula);
    		ultimo->siguiente = n;
    		n->siguiente = NULL;
    		ultimo = n;
    		nodos++;
    	}
    	return;
    }
    
    void visualizar()
    {
    	int i;
    	if (vacia())
    	{
    		printf("Pila vacia");
    		system("PAUSE");
    		return;
    	}
    	else
    	{
    		n = primero;
    		for (i = 0; i<nodos; i++)
    		{
    
    			printf("%i.%s-%i\n", i + 1, n->nombre, n->matricula);
    			n = n->siguiente;
    		}
    		system("PAUSE");
    	}
    	return;
    }
    int borrar(void) /*Esta función "desecha" el último elemento introducido*/
    { 
    	
    	datos* ultimo;
    	
    	if(ultimo==NULL)  
    	{ 
    	printf("Pila vacia"); 
    	system("PAUSE");
    	
    	return NULL ;
    	
    	}
    	}


    Luis

    martes, 8 de marzo de 2016 0:23