Dev - C++ - Me ayudan a corregir mi progama??

 
Vista:

Me ayudan a corregir mi progama??

Publicado por Ivan F (1 intervención) el 15/03/2019 14:32:02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
 
typedef struct Nodo{
    char nombre[20];
    struct Nodo *anterior;
    struct Nodo *siguiente;
}Nodo;
Nodo *primero=NULL;
Nodo *ultimo=NULL;
    Nodo *aux, *nuevoNodo;
    int elemento;
    void agregar();
    void imprimir();
 
int main(){
 
	agregar("uno");
    agregar("dos");
    agregar("tres");
    agregar("cuatro");
    agregarEnPosicion("dos punto cinco",2);
    imprimir(1);
    imprimir(2);
 
	typedef Nodo head;
	int respuesta;
	int n;
 
	printf("¿Que desea hacer?(presione la tecla con la que desea la opcion)\n\n");
	printf("Eliminar nodo=1\n");
	printf("Agregar Posicion=2\n");
	printf("Convertir una lista a una cola=3\n");
	printf("Convertir una pila=4\n\n");
	scanf("%i",&respuesta);
 
	switch(respuesta){
		case 1:{
			printf("En que posicion quieres que elimine el nodo\n");
		scanf("%i",&n);
		while(elemento!=0){
			elemento++;
			aux->siguiente=nuevoNodo;
			nuevoNodo->siguiente=aux->siguiente;
			nuevoNodo->anterior=aux->anterior;
			imprimir();
 
			}
		}
			break;
		}
		switch(respuesta){
			case 2:{
		agregar();
 
			break;
		}
		}
	}
 void agregar(){
	void agregar(char *val){
    Nodo *nuevoNodo;
    nuevoNodo=malloc(sizeof(Nodo));
    if(nuevoNodo!=NULL){
        strcpy(nuevoNodo->nombre,val);
    }
    else{
        printf("ERROR, NO HAY MEMORIA DISPONIBLE");
    }
    if(primero==NULL){
        primero=nuevoNodo;
        ultimo=nuevoNodo;
   	}else
	   {
        nuevoNodo->anterior=ultimo;
        ultimo->siguiente=nuevoNodo;
        ultimo=nuevoNodo;
    	}
	}
}
 void imprimir(int dir){
    Nodo *aux;
    aux=malloc(sizeof(Nodo));
    if(aux!=NULL && primero!=NULL){
        if (dir==1){
            aux=primero;
            while(aux!=NULL){
                printf("%s <-> ",aux->nombre);
                aux=aux->siguiente;
            }
            printf("\n");
        }
        if(dir==2){
            aux=ultimo;
            while(aux!=NULL){
                printf("%s <-> ",aux->nombre);
                aux=aux->anterior;
            }
            printf("\n");
        }
    }else{
        printf("ERROR LA LISTA NO TIENE ELEMENTOS O NO HAY MEMORIA SUFICIENTE");
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Me ayudan a corregir mi progama??

Publicado por Alfil (1444 intervenciones) el 15/03/2019 18:09:04
¿Puedes poner el enunciado completo del ejercicio?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar