Jump to content

AYUDA CODEBLOCKS


Recommended Posts

Hola querida comunidad:

debo crear una lista doblemente enlazada, que tenga la capacidad de agregar y eliminar nodos.

Esto se debe hacer con 2 funciones una llamada 'Agregar' y la otra 'Eliminar', las cuales deben ser llamadas desde el main.

En en main hace un menu, para invocar a una de estas dos funciones, ademas el menu debe dar la opcion 'salir'.

Tengo alguna idea y es algo asi..

 

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#define ASCENDENTE 1

#define DESCENDENTE 0

typedef struct _nodo

{

int valor;

struct _nodo *siguiente;

struct _nodo *anterior;

}tipoNodo;

typedef tipoNodo *pNodo;

typedef tipoNodo *Lista;

 

void Agregar(Lista *listaEnlazada);

void Eliminar(lista *listaEnlazada);

void Agregar(Lista *listaEnlazada)

{

pNodo nuevo, actual;

actual = *listaEnlazada;

nuevo=(pNodo)malloc(sizeof(tipoNodo));//Crear un nodo nuevo

nuevo->valor = v;

 

if(actual==NULL)

{

while(actual->anterior)

{

actual=actual->anterior:

}

}

if((actual!=NULL)|| (actual->valor>v))

{

nuevo->siguiente=actual;

nuevo->anterior=NULL;

if(actual==NULL

{

actual->anterior=nuevo;

}

if(*listaEnlazada!=NULL)

{

*listaEnlazada=nuevo;

}

}else

{

while(actual->siguiente && actual->siguiente->valor<=v)

{

actual=actual->siguiente;

nuevo->siguiente = actual->siguiente;

actual->siguiente = nuevo;

nuevo->anterior = actual;

if(nuevo->siguiente)

{

nuevo->siguiente->anterior=nuevo;

}

}

}

void Eliminar(Lista *listaEnlazada)

{

}

int main()

{

char opcion='\0';

do

{

printf("*****************************************************************\n");

printf("****** 1.- Agregar ******\n");

printf("****** 2.- Eliminar ******\n");

printf("****** 0.- Salir ******\n");

printf("*****************************************************************\n");

printf("Ingrese su opcion: ");

scanf("%c",&opcion);

flush(stdin);

switch(opcion)

{

case '1': Agregar(&listaEnlazada);

break;

case '2': Eliminar(&listaEnlazada);

break;

}

}while(opcion!='0');

}

 

alguien puede sugerirme algo mejor? y corregir mis errores? :)

Link to comment
Share on other sites

ufff que se ve horrible el código en chilecomparte, podrías ponerlo en pastebin. A simple vista se ve bastante mal, haces muchos typedef sin sentido, no son necesarios y el código está algo largo, a simple vista sin siquiera haberlo leído me arriesgo a decir que no está bien o que debe haber una forma mejor de hacerlo. En agregar recibes puntero simple y tiene que ser doble, al hacer malloc el casting está malo, hay varios errores de ese tipo. En agregar no recibes ningún valor tampoco (v). Llegar y escribir código así, tan desordenado no sirve de nada, las cosas hay que pensarlas antes de escribirlas, o sino vas a dedicar todo tu tiempo a arreglar errores en vez de simplemente escribir.

 

Si tienes alguna duda específica pregunta y te ayudo, pero ponerme a leer código me da mucha paja.

 

A todo esto los nodos deben tener algún orden?? esas cosas tienes que decirlas.

 

Te dejo un ejemplo de una lista simplemente enlazada que guarda en cada nodo un string. Es bastante simple de modificar.

 

http://pastebin.com/m7czaggr

Edited by Th3_K4T
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...