bueno yo ya habia leido algo y por desgracia tengo muchas dudas pero pienso que son muy simples espero pudan ayudarme he aqui lo que llevo
#include <stdio.h>
#include <alloc.h>
//aqui inicio mi estructura de nombre lista
struct Lista{
void *dato;
struct Lista *liga;
};struct Lista *lista_insertar(struct Lista *lista,void *dato)
ahora mi duda (si paresco un ignorante) es como insertar "n"datos dados por el usuario,se que es por asignacion de memoria dinamica segun entendi es asi:
struct Lista* nodo=(struct Lista*) malloc(sizeof(struct Lista));
despues de las dudas de aqui sigo con la busqueda del elemento "i"
main()
{
printf("dame la posicion a eliminar:");
scanf("%d",&i);
por teoria entiendo que el apuntador *liga apunta al siguiente nodo,segun yo seria hacer un ciclo while desde la pimera posicion hasta llegar a la posicion "i" y ya lugo borrar ese elemento pero no se como hacerlo,se que llevo poco pero solo he tenido 2 dias para estudiar esto e intentar hacer el programa
//Definicion de librerias
#include <stdlib.h>
#include <iostream.h>
int iValor;//variable global entera "iValor: Dato a ingresar"
//declaracion de tipos
typedef struct Nodo
{
int valores;
struct Nodo *siguiente;
}tipoNodo;//tipo para declarar nodos
typedef tipoNodo *lista;//tipo para definir listas.
//*lista: actua como variable de la estructura Nodo
//Definiciones de funciones
void insertar (lista *,int);//funcion para ingresar datos
void mostrar (lista *);//funcion para mostrar datos
//funcion para insertar un nodo a la lista
void insertar(lista *inicio,int nro)
{
lista nodo;
//asignamos un bloque de memoria al nodo
nodo=(tipoNodo *)malloc(sizeof(tipoNodo));
nodo->valores=nro;//almacenamos en el campo valores el dato ingresado
nodo->siguiente=*inicio;//continuamos en el siguiente nodo
*inicio=nodo;//actualizamos el puntero
}
//funcion para mostrar la lista
void mostrar(lista *inicio)
{
lista puntero; // Definimos puntero
puntero=*inicio; // Actualizamos puntero con los datos ingresados
while(puntero!=NULL) //verificamos si ha datos, si lo imprimimos
{
cout<<puntero->valores<<" ";
puntero=puntero->siguiente;//avanza al siguiente nodo (puntero)
}
cout<<endl; //Avanzar una linea
}
//funcion principal
void main()
{
lista inicio=NULL; // Incializamos la variable lista
cout<<"Ingrese un numero:";
cin>>iValor;//valor a insertar
insertar(&inicio,6); // valor ingresado por defecto
insertar(&inicio,5);
insertar(&inicio,4);
insertar(&inicio,iValor); //Aqui el valor que ingresamos
mostrar(&inicio); // Finalmente mostramos
}
PD: Cuando programes no te desesperes, sino no podrás analizarlo al 100%, ahora espero que no copies el codigo sino que lo entiendas y lo hagas por ti mismo, ahora puedes implementar las demas funciones, modificar, eliminar, buscar. Te he hecho el programa de la manera más facil para que comiences de la mejor manera, con esto ya te habras dado cuenta que es muy facÃl programar listas enlazadas.
Fashion