Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda TADlista

Estas en el tema de Ayuda TADlista en el foro de C/C++ en Foros del Web. Buenas necesito ayuda sobre un TADlinea que estoy haciendo, ya me falta menos, aver si me podeis ayudar Código: //archivo TADlista.h #ifndef _TADLISTA_H #define _TADLISTA_H ...
  #1 (permalink)  
Antiguo 17/03/2010, 15:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 14
Antigüedad: 14 años, 5 meses
Puntos: 0
Ayuda TADlista

Buenas necesito ayuda sobre un TADlinea que estoy haciendo, ya me falta menos, aver si me podeis ayudar

Código:
//archivo TADlista.h

#ifndef _TADLISTA_H
#define _TADLISTA_H

#include <stdio.h>
#include <stdlib.h>

#define CIERTO 1
#define FALSO 0

#define MAX 3

typedef short int LOGICO;

void CrearListaOrdenada (char *l);
char ExtraerElemento(char *l, int pos);//Falta por hacer
void OrdenarPorBurbuja(char *l);
void OrdenarPorSeleccion(char *l);
int buscarMenor(char *l,int pos);

void OrdenarPorInserccion(char *l);
void InsertarEnOrden(char *l, char elemento);//Falta por hacer
void InvertirOrden(char *l);
char ExtraerPrimero(char *l);//Falta por hacer//coge el primer elemento de la lista //y se lo quita, quedando entonces primero el 2º elemento de la lista
char ExtraerUltimo(char *l);//Falta por hacer
LOGICO EsListaVacia(char *l);//Falta por hacer//si la lista solo contiene *, es que //esta vacio, no estara vacio cuando contenga algun elemento distinto al *
LOGICO EsFinLista(char *l,int pos);//Falta por hacer//si la posición que recibe la lista es la ultima entonce es cierto

void ImprimirVector(char *l);
#endif



//archivo main.c
#include "TADlista.h"


int main()
{
    char l[MAX];
    int i;
    int pos;
    int vac;

    printf("\nCreando Lista Ordenada...");
    CrearListaOrdenada(l);
    ImprimirVector(l);

    for(i=0;i<MAX;i++)
    {
    printf("\nIntroduzca elemnto vector %i: ",i);
    scanf("%c",&l[i]);
    fflush(stdin);
    }

    vac=EsListaVacia(l);

    if(vac==1)
    {
        printf("\nLista vacia");
    }

    else
    {
    printf("\nElementos Introducidos...");
    ImprimirVector(l);


    //ExtraerElemento(l,pos);

    printf("\nOrdenacion por Burbuja...");
    OrdenarPorBurbuja(l);
    ImprimirVector(l);

    printf("\nOrdenacion por Seleccion...");
    OrdenarPorSeleccion(l);
    ImprimirVector(l);

    printf("\nOrdenacion por Inserccion...");
    OrdenarPorInserccion(l);
    ImprimirVector(l);



//InsertarEnOrden(char *l, char elemento);

    printf("\nInvertir Orden...");
    InvertirOrden(l);
    ImprimirVector(l);

//ExtraerPrimero(char *l);
//ExtraerUltimo(char *l);


//LOGICO EsFinLista(pos);
    }

    return 0;
}

//archivo TADlista.c

#include "TADlista.h"

void CrearListaOrdenada (char *l)
{
    int i;
    i=0;
    for(i=0;i<MAX;i++)
    {
        l[i]='*';
    }
}

/*char ExtraerElemento(char *l, int pos)
{


}*/

void OrdenarPorBurbuja(char *l)
{

    int i,j,temp,num;
    num=0;
    for(i=0;i<MAX-1;i++)
    {
        for(j=i+1;j<MAX;j++)
        {
            if(l[j]<l[i])
            {
                temp=l[j];
                l[j]=l[i];
                l[i]=temp;
            }
        }
    }
}




void OrdenarPorSeleccion(char *l)
{
    int i;
    int posmin, temp;

    for(i=0;i<MAX;i++)
    {
        posmin=buscarMenor(l,i);
        temp=l[posmin];
        l[posmin]=l[i];
        l[i]=temp;
    }

}
int buscarMenor (char *l, int pos)
{
    int min, j, p;

    min=l[pos];

    p=pos;

    for(j=pos+1;j<MAX;j++)
    {
        if(l[j]<min)
        {
            min=l[j];
            p=j;
        }
    }

    return p;
}

void OrdenarPorInserccion(char *l)

{
    int i,k,x;

    for(i=1;i<MAX;i++)
    {
        x=l[i];
        k=i-1;
        while(k>=0 && x<l[k])
        {
            l[k+1]=l[k];
            k--;
        }
        l[k+1]=x;
    }
}

/*void InsertarEnOrden(char *l, char elemento)
{

    int i,j,temp,num;
    num=0;
    for(i=0;i<MAX-1;i++)
    {
        for(j=i+1;j<MAX;j++)
        {
            if(l[j]<l[i])
            {
                temp=l[j];
                l[j]=l[i];
                l[i]=temp;
            }
        }
    }

}*/


void InvertirOrden(char *l)
{
    int i,j,temp,num;
    num=0;
    for(i=0;i<MAX-1;i++)
    {
        for(j=i+1;j<MAX;j++)
        {
            if(l[j]>l[i])
            {
                temp=l[j];
                l[j]=l[i];
                l[i]=temp;
            }
        }
    }
}
/*
char ExtraerPrimero(char *l)
{

}

char ExtraerUltimo(char *l)
{

}*/

LOGICO EsListaVacia(char *l)

{
    int i;
    LOGICO vacio;
    vacio=FALSO;
    i=0;
/*
    if(l[i]='*')
    {
        vacio=CIERTO;
    }*/

    for(i=0;i<MAX;i++)
    {
        if(l[i]=='*')
        {
            vacio=CIERTO;
        }
        else
        {
            vacio=FALSO;

        }
    }
return vacio;
}

/*
LOGICO EsFinLista(char *l,int pos)
{

}
*/

void ImprimirVector(char *l)
{
    printf("\nImprimiendo...\n\n");

    int i;

    printf("[");
    for(i=0;i<MAX;i++)
    {
        printf(" %c ",l[i]);
    }
    printf("]\n");
}
Espero que me podais ayudar a las funciones que faltan, gracias
  #2 (permalink)  
Antiguo 27/03/2010, 11:29
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: Ayuda TADlista

Realizar este problema te ayudará a entender como funciona las estructura de datos. hazlo solo por tu bien. Sólo te puedo sugerir que formes una estrategia gráfica y los plasmes en código.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:08.