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

Revisão Arquitetura de Computadores

Por:   •  11/4/2017  •  Trabalho acadêmico  •  413 Palavras (2 Páginas)  •  128 Visualizações

Página 1 de 2
  1. Uma lista é uma estrutura de dados formada por um conjunto de dados que serve para armazenar/guardar dados de forma a preservar a relação de ordem linear entre eles.
  2. Operações de uma lista:
  • Criar uma lista vazia
  • Verificar se uma lista está vazia
  • Obter o tamanho de uma lista
  • Obter/Verificar o valor de um elemento posicionado na lista
  • Inserir um novo elemento após ou antes de uma posição na lista
  • Remover um elemento de determinada posição da lista
  • Exibir os elementos de uma lista
  • Concatenar duas listas
  1. As listas são estruturas de dados bastantes flexíveis, porque podem crescer de acordo com o que se pede, durante a execução do programa, sem problema algum;
  2. Os Itens podem ser inseridos ou  removidos de uma lista de acordo como for necessário.
  3. Implementação da Lista
  • Vazia(Lista). Verifica se a lista está vazia.
  • Inserir(valor, Lista). Insere o valor na ultima posição da lista.
  • Remover(Lista, posicao). Remove o valor da posição ‘posicao’ da lista.
  • TornaVazia(Lista). Torna a Lista vazia.
  • Imprimir(Lista). Imprime os elementos da lista
  1. .

void Imprime(LISTA Lista){

int Auxiliar;

for (Auxiliar = Lista->Primeiro - 1; Aux <= (Lista->Ultimo - 2); Aux++)

printf ( "%d\n" , Lista->Item[Auxiliar]->Valor) ;

}

void Inserir(INT valor , LISTA *Lista){

if ( Lista->Ultimo > TAM)

printf( "Lista cheia\n" ) ;

else { Lista->Elemento[Lista->Ultimo - 1] = valor;

Lista -> Ultimo++;

}

}

void Retira(int p, LISTA *Lista , int *Elemento){ int Auxiliar;

if (Vazia(*Lista ) or p>=Lista->Ultimo)

{ printf ( "Posicao nao encontrada. \n" ) ;

return;

} *Elemento = Lista -> Elemento[p-1];

Lista -> Ultimo--;

for (Auxiliar = p; Auxiliar < Lista -> Ultimo ; Auxiliar++)

Lista -> Elemento[Auxiliar - 1] = Lista -> Elemento[Auxiliar] ;

}

  1. Como não é necessário declarar ou alocar uma quantidade fixa de memoria, assim evita seu desperdício pois os ponteiros são alocados dinamicamente de acordo com a necessidade.
  2. Em aplicações que são compiladas o tamanho máximo da lista deve ser informado em tempo de execução.  A implementação de apontadores é mais trabalhosa.
  3. Na implementação com apontadores um elemento guarda em si valores como também uma variável do tipo ponteiro que aponta para um próximo elemento ou pra NULO quando este for o ultimo elemento da LISTA. As inserções e remoções de elementos podem ser feitas em qualquer posição da lista, assim como a leitura para impressão na tela.
  4. .

typedef struct {

int Chave;

prox *ponteiro

} Elemento;

typedef struct int ponteiro;

  1. Permite alocar dinamicamente os dados, não precisando assim definir/alocar um tamanho máximo fixo para armazenar os dados.
  2. Mais trabalhosa sua implementação.

...

Baixar como (para membros premium)  txt (2.7 Kb)   pdf (129.4 Kb)   docx (12.5 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com