CAPA DA ATPS estrutura de dados
CIÊNCIA DA COMPUTAÇÃO
ATIVIDADES PRÁTICAS SUPERVISIONADAS
Estrutura de Dados
PROF. DA DISCIPLINA
DATA DA ENTREGA
: Mário Sérgio Sabbag Cunha
: 09 /06 /2011
Ciência da computação
ATIVIDADES PRÁTICAS SUPERVISIONADAS
Curso:
DATA:
MATÉRIA:
SERIÉ:
Prof:
CIÊNCIA DA COMPUTAÇÃO
09 /06 /2011
ESTRUTURA DE DADOS
3ª PERÍODO
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
Abaixo o código-fonte do programa ‘MONDO DOS BLOCOS’
Com estrutura de listas simplesmente encadeadas
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
// 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[])