Beruflich Dokumente
Kultur Dokumente
b c d c
3
6
f g h j
2 4 5
i
l
1
Hashing
A tcnica hashing tem a finalidade de espalhar os dados em N classes ou chaves, obtendo desta forma um rpido
acesso aos dados. Os dados no precisam estar classificados.
Busca Binria
uma tcnica que permite desenvolver o particionamento de uma base de dados em n divises sendo exigido que os
dados estejam organizados. Est tcnica tambm conhecida por arvore de indexao.
7 - Para obter sucesso na recuperao de dados em uma Busca Binria, necessrio que a mesma esteja o que?
necessrio que os dados estejam organizados
11 - Em que aplicao podemos afirmar que as estruturas de rvores e rvores binrias so utilizadas?
Arvores Binria - sua aplicao ocorre em organizaes de registro tanto em arquivos convencionais quanto em
tabela de banco de dados.
Arvores - uma estrutura linear que gerencia pasta ou subdiretrios em sistemas operacionais.
Pilhas:
#include <stdio.h>
#include <conio.h>
#define TAM_VET 10
#define VERD 1
#define FALSO 0
#define ERRO -1
Filas:
/* Convenes:
frente = 0 e fim = -1
frente > fim indica fila vazia.
fim = TAM_VET - 1 indica fila cheia
*/
#include <stdio.h>
#include <conio.h>
#define TAM_VET 10
#define VERD 1
#define FALSO 0
#define ERRO -1
int main()
{
float F[TAM_VET];
int frente,fim;
int ok,op=0;
float dado;
system("cls");
Inic_Fila(&frente, &fim);
while ( op != 3 ) {
printf("\n\nMenu\n1-Inserir\n2-Excluir\n3-Fim\nOpcao: ");
scanf("%d",&op);
if ( op == 1)
{
printf("\nDigite um numero: ");
scanf("%f",&dado);
Insere_Fila(F, &fim, dado);
}
else if ( op == 2 )
{
ok = Remove_Fila(F, &frente, &fim, &dado);
if ( ok != ERRO)
printf("\nElemento removido: %f", dado);
}
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void insere_inicio(cidade**lista,char nome[], float area, long int pop, char estado[])
{
cidade *novo;
novo=(cidade*)malloc(sizeof(cidade));
if(novo==NULL)
printf("\nNao ha memoria");
else
{
strcpy(novo->nome,nome);
strcpy(novo->estado,estado);
novo->populacao=pop;
novo->area=area;
novo->prox=*lista;
*lista=novo;
system("cls");
printf("\nSucesso\n");
}
}
void imprime_maior_pop(cidade *lista)
{
cidade *maior=lista;
if(lista==NULL)
{
system("cls");
printf("\n Lista vazia\n");
}
else
{
while(lista!=NULL)
{
if(lista->populacao>maior->populacao)
maior=lista;
lista=lista->prox;
}
system("cls");
printf("\n Nome=%s Area=%.2fkm pop=%ld estado=%s\n", maior->nome, maior-
>area, maior->populacao, maior->estado);
}
}
int main()
{
cidade *lista=NULL;
int opcao=0;
char nome[31], estado[3];
float area;
long int pop;
do
{
printf("\n***MENU***\n");
printf("\n1 - Insere inicio");
printf("\n2 - Imprime cidade com maior populacao");
printf("\n3 - Densidade");
printf("\n4 - Imprime cidade com populacao > 200.000");
printf("\n5 - Soma de pop das cidades de um estado definido pelo
usuario");
printf("\n6 - Remover cidade do inicio");
printf("\n9 - Sair");
printf("\n\nDigite a opcao: ");
scanf("%d", &opcao);
switch(opcao)
{
case 1:
printf("\nDigite o nome da cidade: ");
fflush(stdin);
gets(nome);
printf("\nDigite o estado: ");
scanf("%s", &estado);
printf("\nDigite a extencao territorial: ");
scanf("%f", &area);
printf("\nDigite a populacao: ");
scanf("%ld", &pop);
insere_inicio(&lista, nome, area, pop, estado);
break;
case 2:
imprime_maior_pop(lista);
break;
case 3:
imprime_todos_dens(lista);
break;
case 4:
imprime_pop_maior(lista);
break;
case 5:
printf("\nDigite estado: ");
fflush(stdin);
gets(estado);
system("cls");
printf("\nTotal do estado %s = %ld\n", estado,
tot_por_estado(lista,estado));
break;
case 6:
remove_inicio(&lista);
break;
case 9:
system("cls");
printf("\nObrigado por utilizar nossos servicos\n\n");
system("pause");
break;
default:
system("cls");
printf("\nOpcao invalida!\n");
}
} while(opcao!=9);
}
rvores
- Fudamentos
Uma rvore uma coleo finita de n >= 0 nodos. Se n = 0, dizemos que a rvore nula, caso contrrio uma rvore
apresenta as seguintes caractersticas :
C
B D
E F G H I S
K L M
Arvores generalizadas
Uma lista generalizada uma estrutura conveniente para representar rvores. Devido a sua flexibilidade as listas
generalizadas podem armazenar rvore a qualquer grau.
Por exemplo:
B C D
E F G
T: [A,[B,[E]],[C],[D,[F],[G]]
A fila um tipo especial de lista linear em que todas as operaes de insero e remoo so realizadas em
extremidades opostas como inicio e fim.
Devido a esta disciplina de acesso aos elementos, sero sempre removidos na ordem em que foram
inseridos, de modo que o primeiro elemento que entra exatamente o primeiro a ser removido.
Da o faro destas listas serem denominadas de listar FIFO ( first-in / first-out ).
Por definio, uma FIFO uma estrutura dinmica que permite aumentar / diminuir durante a sua
existncia.
Devida a esta caracterstica podemos concluir que as pilhas suportam quais operaes.
Enqueue - insere um novo elemento na lista;
Dequeue - remove um elemento na lista;
getFront - consulta o elemento do topo da lista;
Exemplo:
1) Enqueue F(a);
2) Enqueue F(b);
3) Dequeue F;
4) Enqueue F(c);
5) Enqueue F(d);
6) Dequeue F;
7) Dequeue F;
Pilha
A pilha um tipo especial de lista linear em que todas as operaes de insero e remoo so realizadas
numa mesma extremidade denominada como topo. Cada vez em que um novo elemento deve ser inserido na pilha,
ele colocado no seu topo e a qualquer momento poderia ser removido.
Devido a esta disciplina de acesso aos elementos, sero sempre removidos na ordem inversa quela em que
foram inseridas, de modo que o ltimo elemento que entra exatamente o primeiro a ser removido.
Da o faro destas listas serem denominadas de listar LIFO ( last-in / first-out ).
Por definio, uma LIFO uma estrutura dinmica que permite aumentar / diminuir durante a sua
existncia.
Devida a esta caracterstica podemos concluir que as pilhas suportam quais operaes.
Push - insere um novo elemento na lista;
Pop - remove um elemento na lista;
Top - consulta o elemento do topo da lista;
Exemplo:
1) Push P (a);
2) Push P (b);
3) Pop P;
4) Push P (c);
5) Push P (d);
6) Pop P;
7) Pop P;
1) a <- P
2) b <- P
a
******
3) ** Pop
a
4) c <- P
a
5) d <- P
c
a
6) d
c <- P
a
7) d
a <- P
Notao polonesa reversa (NPR)