TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

ATPS FINAL COM LISTAS SIMPLESMENTE ENCADEADAS

Por:   •  5/5/2015  •  Trabalho acadêmico  •  1.449 Palavras (6 Páginas)  •  260 Visualizações

Página 1 de 6

                

[pic 1]

                                                                   

FACULDADE ANHANGUERA DE ANÁPOLIS

CIÊNCIA DA COMPUTAÇÃO

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Estrutura de Dados

PROF. DA DISCIPLINA      : Mário Sérgio Sabbag Cunha

DATA DA ENTREGA          : 09 /06 /2011

Ciência da computação

ATIVIDADES PRÁTICAS SUPERVISIONADAS

      Curso:    CIÊNCIA DA COMPUTAÇÃO

       DATA:    09 /06 /2011

    MATÉRIA:    ESTRUTURA DE DADOS

      SERIÉ:    3ª PERÍODO   

 

       Prof:    Mário Sérgio Sabbag Cunha 

 

            ALUNOS QUE EFETUARAM ESTA ATIVIDADE:

            Robson Braz Viana *                            RA: 1018844729 

 

            Hugo Henrique Crisostomo                       RA: 1034974359

 

            Samuel Alves Santiago                          RA: 1041973795

            Jônatas Guilherme Rocha da Silva               RA: 1013817473

2ª parte da ATPS de estrutura de dados I

  Definimos uma estrutura de dados com alocação dinâmica de memória para o desafio proposto. Essa estrutura é composta por um vetor de listas encadeadas (na qual cada lista encadeada corresponde a uma pilha de blocos, sendo que cada célula dessa lista vai corresponder a um bloco). Por exemplo, as duas configurações mostradas logo abaixo e uma representação do desafio proposto pela atividade, será da seguinte forma.   

                   Blocos não-movidos                   Blocos movidos

[pic 2][pic 3]

Abaixo o código-fonte do programa ‘MONDO DOS BLOCOS’

Com estrutura de listas simplesmente encadeadas  

# include

# include

# include

// definição da estrutura utilizada no código            

   struct Blocos{

             int elemento;

             struct Blocos *next;

   };

// criação do tipo de Célula correspondente

typedef struct Blocos vetorLista;

vetorLista *inserir(vetorLista *L[],int ind,int valor)

{

    vetorLista *novo;           /* ponteiro para a nova celula */

    vetorLista *ant = *(L+ind); /* percorrer listas*/

    // alocando memória dinamicamente

    // e retornando uma Célula para o ponteiro 'novo'

    novo = malloc( sizeof (vetorLista) );

    novo->elemento = valor;

    if(*(L+ind) != NULL)

    {

        // percorre ate uma celula ante do final

        while(ant->next != NULL)

           ant = ant->next;

        novo->next = ant->next;

        ant->next = novo;

        return *(L+ind);

    }else

        novo->next = *(L+ind);

        return novo;

}

// imprimir dados da lista

void imprimirLista(vetorLista *L[])

{

     vetorLista *p;

     int indice = 0;

     clrscr();

     printf("         MUNDO DOS BLOCOS\n");

     printf("\n --------------------------------\n");

     while(indice < 10)

     {

         printf(" %d: ",indice);

         for(p = *(L+indice++); p != NULL ;p=p->next)

             printf(" %d ",p->elemento);

         if(indice  < 10)

              puts("\n  |");

     }

     printf("\n --------------------------------\n");

}

vetorLista  *moverListas(vetorLista *L[],int indOrigem,int indDestino)

{

      //ponteiro para percorrer lista destino

       vetorLista *dest = *(L+indDestino);

       if(*(L+indDestino) != NULL)

       {

           // percorrer ate uma célula antes do final da lista de destino

           while(dest->next != NULL)

                dest = dest->next;

           dest->next = *(L+indOrigem);

           return *(L+indDestino);

       

       }else

            return *(L+indOrigem);

}

     

               

int convertInt()

...

Baixar como (para membros premium)  txt (5.5 Kb)   pdf (171.6 Kb)   docx (776.6 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com