Atps Redes 123

34
FACNET TECNOLOGIA EM ANÁLISE DE DESENVOLVIMENTO DE SISTEMAS ATPS – REDES DE COMPUTADORES 4ª SERIE TUTOR PRESENCIAL – ROGERIO AUGUSTO CESAR MUNIZ EVERTON - RA 7701634654 RHAYANARA VANESSA MUNIZ EVERTON – RA 7701664129 YURE RODRIGUES DE CARVALHO- RA 7706671309 DENYS FONTENELE- RA 7983721712 TAGUATINGA/DF2014

description

123213sadsad

Transcript of Atps Redes 123

FACNET

TECNOLOGIA EM ANÁLISE DE DESENVOLVIMENTO DE SISTEMAS

ATPS – REDES DE COMPUTADORES

4ª SERIE

TUTOR PRESENCIAL – ROGERIO

AUGUSTO CESAR MUNIZ EVERTON - RA 7701634654

RHAYANARA VANESSA MUNIZ EVERTON – RA 7701664129

YURE RODRIGUES DE CARVALHO- RA 7706671309

DENYS FONTENELE- RA 7983721712

TAGUATINGA/DF2014

2

SUMARIO______________________________________________________Pag. 2

1. ETAPA 1 - Estrutura de Dados.______________________________Pag.31.1 Passo 1 (Aluno)_______________________________________Pag.31.2 Passo 2 (Equipe)______________________________________Pag.3 1.3 Passo 3 (Equipe)______________________________________Pag.3 a 51.4 Passo 4 (Equipe)______________________________________Pag.6

2. ETAPA 2 -Listas Ligadas.__________________________________Pag.62.1 Passo 2 (Equipe)______________________________________Pag.6 a 82.2 Passo 3 (Equipe)_____________________________________Pag.8 a 102.3 Passo 4 (Equipe)_____________________________________Pag.10 a 11

3. ETAPA 3 - Filas e Pilhas._____________________________________Pag.123.1 Passo 2 (Equipe)____________________________________Pag.12 a 143.2 Passo 3 (Equipe)_____________________________________Pag.14 a 173.3 Passo 4 (Equipe)_____________________________________Pag.17 é 18

4. ETAPA 4–Grafos._________________________________________Pag.184.1 Passo 3 (Equipe)_____________________________________Pag.18 a 23

5. Bibliografias.____________________________________________Pag.24

3

ETAPA 1Passo 1

Somente a pesquisa no site do livro texto da disciplina: Comunicação de Dados e Redes de Computadores e coletar informações ao projeto a ser desenvolvido.

Passo 2

Somente a pesquisa e colher informações úteis na composição do projeto site sugerido: http://www.mhhe.com/engcs/compsci/forouzan/

Passo 3

Pesquisar o site Clube do Hardware e colher informações úteis nos sites:http://www.hardware.com.br/livros/redes/introducao.htmlhttps://docs.google.com/a/aedu.com/file/d/0B9e1nI9U5ACjWnVQWExjVDNyNjQ/edit

Passo 41.1 Histórico da Empresa: A empresa atua no ramo financeiro, possui 40 funcionários e contém 5 departamentos.

1.2 Objetivos do Projeto: Implantar uma infraestrutura e manutenção projetada para atender toda demanda da empresa melhorando sua performace

1.3 Esboço do Projeto de Redes de Computadores:************

ETAPA 2Passo 1Empresas e sites especializados em equipamentos para redeswww. cisco .com/ http://www.tp-link.com.br/

https://dlink.com.br/http://itbr.org/https://www.mundotibrasil.com.br/

Passo 2Leitura do capítulo do livro texto que apresenta informações a respeito da camada física dos sistemas de redes de computadores.Passo 3

4

2.1 Topologia de redes: nosso projeto precisa de locais interiores contendo hosts ligados atravez de uma rede, computadores serão ligados através de um switch que irá intermediar as conexões da empresa, vai ter um roteador, servidores e estações de trabalho com desktop, impressoras e telefone *** (utilizar o Microsoft Visio) com a ilustração dos computadores, cabeamento e equipamentos da rede.

2.2 Equipamentos do Sistema de Redes de Computadores:- Rack 42U com Painel Lateral: possui fácil instalação e tamanho compacto para otimizar o espaço no data center.- Path Panel:fazer a conexão entre o cabeamento do rack de comunicações e chega as tomadas destino.- Swich TP-link:para ajudar nas eventuais comunicações.- Roteador wireless D-link:para otimização de sinal.- Servidor Dell: para ser a central da rede interligando computadores.- Estações de trabalho:contendo computador, telefone, cabeamento para acesso a internet.

2.3 Enlaces Internos de Comunicação:Cabo Telefônico Metálico FAST-CIT para os setores com maiores tráfegos de informações, passando pelo switch e as demais estações, foco no wireless utilizado pelo setor com maior privilégio escolhidopadrão: IEEE 802.11

2.4Enlace Externo de Comunicação:O utilizado foi o link de conexão a internet NET IP fixo, que atua tanto para navegação quanto para comunicação.

2.5 Orçamento:Rack 42U - R$ 2924.00Path Panel - R$ 78,00 Switch TP-Link - R$52,00Roteador D-Link - R$89,00Servidor Dell PowerEdge - R$2.949,00Cabeamento – R$ 300,00Estação de trabalho complete (cada) – R$4.000Total R$10.392,00

ETAPA 3Passo1Leitura dos capítulos do livro texto ou complementar que trazem informações referentes à camada de rede e roteamento do sistema de redes de computadores, bem como à segurança em redes de computadores.

5

Passo2Acessar e pesquisar sites que divulgam informações acerca da atribuição de endereços IP e do endereçamento IP interno de uma empresa. Sites sugeridos:http://www.iana.orghttp://www.lacnic.net/pt/index.html

Passo3Fazer uma pesquisa na Internet em busca de informações sobre os principais softwares de firewall disponíveis no mercado. Pesquisar também sites sobre segurança em redes e sistemas de informação.Sites sugeridos para pesquisa: http://mitnicksecurity.comhttp://www.crime-research.orghttp://www.crime-research.org/analytics/computer_crime22/Programas para firewall: Comodo Internet Security, Agnitum Outpost, AShampoo

Passo 43.1Estrutura de Endereçamento de Rede:

3.23.3Política de privacidade: definido as informações pessoais, sejam elas de clientes, usuários ou funcionários que forem acessadas ficaram na guarda na empresa.Política de confidencialidade: define como são tratadas as informações institucionais, ou seja, se elas podem ser repassadas a terceiros.Política de uso aceitável (PUA) ou Acceptable Use Policy (AUP): também chamada de "Termo de Uso" ou "Termo de Serviço", define as regras de uso dos recursos computacionais, os direitos e as responsabilidades de quem os utiliza e as situações que são consideradas abusivas.3.4Política de Senhas:O critério utilizado na construção de senha será o de ter 5 a 8 caracteres e ao menos um número entre eles.

3.5Sistema de Firewall:- Fazer o download do Endian Firewall no site- Instalação do .iso- Configuração inicial basta apertar enter nos parâmetros pedidos- Coloque seu endereço e ip e a mascara no campo desejado- após a instalação acesse em um navegador o endereço que você colocou na interface . - irá abrir a tela de boas vindas de inicialização demonstrando que foi instalado.- selecione o idioma e o parâmetro desejado e clique em avançar- clique em configuração SSH e configure de acordo com sua máquina

- Selecione o botãofiltro de conteúdo/bloqueio de portas- adicione na tabela os dns desejados para controlar seu firewall

6

Passo 4 Fazer o Relatório 03: Política e Sistema de Endereçamento de Rede do projeto e Segurança de Redes. Nesta etapa, o grupo deverá fazer um projeto de rede de computadores com os seguintes capítulos: 3.1 Estrutura de Endereçamento de Rede: apresentar um planejamento da estrutura de endereçamento IP para a rede local. Fazer a descrição da política de endereçamento informando a classe de endereçamento IP utilizada na rede interna, se o endereçamento IP é estático ou dinâmico e as razões para a escolha do tipo de endereçamento. Descrever os endereços IPs, os intervalos de endereços IPs utilizados em cada departamento, as sub-redes e as máscaras de rede utilizadas. 3.2 Planos Futuros de Endereçamento: apresentar um estudo para a implantação do sistema de endereçamento IPv6, descrevendo a faixa de endereços a ser utilizada em toda a rede para esta versão de endereçamento. 3.3 Política de Segurança no Sistema: escrever uma política de segurança para o sistema de informação da empresa por meio de um Checklist de atividades proibidas na utilização de seu sistema e de um manual de boas práticas de utilização do sistema.

==================================ETAPA 1Passo 1 (Aluno)

Somente a leitura pedida no material sobre introdução às Estruturas de Dados évetores e matrizesvoltadas à linguagem C nos comandos da ATPS.

Passo 2 (Equipe)

Nesta etapa na verdade não chegamos nem a discutir, pois na realidade estávamos mais

era aprendendo, mas estudamos em cima do conteúdo destacado na ATPS que foram:

1. Alocação de Memória;2. Ponteiros em C;3. Estruturas de dados e C;4. Vetores em C;5. Implementando vetores unidimensionais;6. Operações com strings de caracteres;

7

7. Estruturas em C;8. Implementando estruturas.

Passo 3 (Equipe)

Atividade 1.

Alocação estática de memória

• Ao se declarar uma variável qualquer, o compilador deixa reservado um espaço

suficiente na memória para armazená-la.

int a; // 4 bytes

float x; // 4 bytes

double y; // 8 bytes

char c; // 1 byte

char *c; // 4 bytes.

Alocação estática de memória

• Ao fazer a alocação estática, apenas o espaço necessário na memória é reservado

• O conteúdo de cada posição não é alterado, e portanto uma variável apenas declarada

pode conter qualquer coisa

• Inicializar as variáveis, atribuindo valores, antes do uso– Inclusive vetores, matrizes e

strings.

Atividade 2.

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int main(void){

struct aviao{

char modelo[80];

char fabricante[80];

int passageiros;

int comprimento;

int altura;

8

int velocidade;

int altitude;

int motor;

};

struct aviao aviao;

printf("Digite o modelo do aviao:\n");

gets(aviao.modelo);

printf("Digite o nome da fabricante do aviao:\n");

gets(aviao.fabricante);

printf("Digite o numero de passageiros:\n");

scanf("%i",&aviao.passageiros);

printf("Digite o comprimento do aviao:\n");

scanf("%i",&aviao.comprimento);

printf("Digite a altura do aviao:\n");

scanf("%i",&aviao.altura);

printf("Digite a velocidade em que o aviao se encontra:\n");

scanf("%i",&aviao.velocidade);

printf("Digite o numero do motor do aviao:\n");

scanf("%i",&aviao.motor);

printf("Digite a altitude em que o aviao se encontra em pes:\n");

scanf("%i",&aviao.altitude);

printf("\n");

9

printf("Aviao %s da empresa XXX.",aviao.modelo);

printf("\n");

printf("Fabricante %s do modelo %s .",aviao.fabricante,aviao.modelo);

printf("\n");

printf("O numero de passageiros do aviao %s e:

%02i .",aviao.modelo,aviao.passageiros);

printf("\n");

printf("O comprimento do aviao %s sao: %02i

Metros",aviao.modelo,aviao.comprimento);

printf("\n");

printf("A altura do aviao %s sao de: %02i

Metros",aviao.modelo,aviao.altura);

printf("\n");

printf("A velocidade em que se encontra o aviao %s e %i

km/h.",aviao.modelo,aviao.velocidade);

printf("\n");

printf("A altitude em que se encontra o aviao e de %i: pes.",aviao.altitude);

printf("\n");

printf("O modelo do motor do aviao %s e %i.",aviao.modelo,aviao.motor);

getch();

return 0;

}

Passo 4(Equipe)

Relatório 1 - Estrutura de Dados

Tento em base as leituras sobre estruturas de dados e pesquisas feitas pelo grupo, aonde

aprendemos muito sobre estruturas na linguagem C, foi feito o programa pedido no passo 3

da 1° etapa da ATPS, aonde fizemos um programa que recebesse valores e caracteres de um

avião, e o exibisse, como pedido usamos uma STRUCT chamada “avião”, montamos toda a

estrutura do programa que foi apresentado logo a cima, o grupo se desempenhou muito bem

nessa etapa superando as dificuldades que tínhamos e buscando se aprofundar mais e sanar

10

as duvidas.

ETAPA 2

Passo 2 (Equipe)

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

using namespace std;struct passagem {int numero;int numeroVoo;intdataEmbarque;inthoraEmbarque;intportaoEmbarque; struct passagem* prox;};typedef struct passagem PASSAGEM;

PASSAGEM* inicializar_Passagem(void){return NULL;}PASSAGEM* cadastrar_Passagem(PASSAGEM* p){PASSAGEM* novo = (PASSAGEM*) malloc(sizeof(PASSAGEM));printf("Entre com o numero da passagem: ");scanf("%d",&novo->numero);printf("Entre com numero do voo: ");scanf("%d",&novo->numeroVoo);printf("Entre com a data do embarque: ");scanf("%d",&novo->dataEmbarque);printf("Entre com hora do embarque: ");scanf("%d",&novo->horaEmbarque);printf("Entre com o portao de embarque: ");scanf("%d",&novo->portaoEmbarque);novo->prox = p;return novo;free(novo);};void imprimir_Passagem(PASSAGEM* p){PASSAGEM* aux;for (aux = p;aux != NULL;aux = aux->prox){printf("Numero da passagem....: %d\n",aux->numero);printf("Numero do voo.........: %d\n",aux->numeroVoo);printf("Data do embarque......: %d\n",aux->dataEmbarque);printf("Hora do embarque......: %d\n",aux->horaEmbarque);printf("Portao do embarque....: %d\n",aux->portaoEmbarque);};

11

system("PAUSE");};void consulta_Passagem(PASSAGEM* v, int numero){PASSAGEM* aux;printf("Informe o numero da passagem: ");scanf("%d",&numero);for (aux = v; aux != NULL; aux = aux->prox) {if (aux->numero = numero) {printf("Numero da passagem....: %d\n",aux->numero);printf("Numero do voo.........: %d\n",aux->numeroVoo);printf("Data do embarque......:%d\n",aux->dataEmbarque);printf("Hora do embarque......: %d\n",aux->horaEmbarque);printf("Portao do embarque....: %d\n",aux->portaoEmbarque);} else {printf("Passagem não encontrado!"); };};};int main(int argc, char *argv[]) { PASSAGEM* passagem;passagem = inicializar_Passagem();int opcao, consulta;do {system("CLS");system("TITLE ETAPA 2 - Passo 3 ");printf("\t\t\t Estrutura Passagem");printf("\n\n\n");printf("\t 1 - Cadrastrar passagem \n");printf("\t 2 - Exibir passagem \n");printf("\t 3 - Consulta passagem \n");printf("\t 0 - Sair ");printf("\n\n");printf("\t Digite a opcao: ");scanf ("%d",&opcao);switch(opcao){case 1:passagem = cadastrar_Passagem(passagem);break;case 2:imprimir_Passagem(passagem);break;case 3:printf("Digite o numero da passagem: ");scanf("%d",consulta);consulta_Passagem(passagem,consulta);case 0:break;default:printf("\n Opcao incorreta, tente novamente!\n");system ("pause");

12

};}while (opcao != 0); system ("pause");return EXIT_SUCCESS; }

Passo 3 (Equipe)

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

using namespace std;struct taxiamento{int numero;char modelo[20];char empresa[20];int saida;struct taxiamento* prox; };typedef struct taxiamento TAXI;TAXI* inicializar_Taxiamento(void) {return NULL;}TAXI* cadastrar_Taxiamento(TAXI* t){TAXI* novo = (TAXI*) malloc(sizeof(TAXI));printf("Informe o numero do Voo: ");scanf("%d",&novo->numero);printf("Informe o modelo da aeronave: ");scanf("%s",&novo->modelo);printf("Informe a empresa: ");scanf("%s",&novo->empresa);printf("Informe o horario de saida: ");scanf("%d",&novo->saida);novo->prox = t;return novo;free(novo);};void imprimir_Taxiamento(TAXI* t){TAXI* aux;for (aux = t; aux != NULL; aux = aux->prox) {printf("Numero do Voo......: %d \n",aux->numero);printf("Modelo da Aeronave.: %s \n",aux->modelo);printf("Empresa Aerea......: %s \n",aux->empresa);printf("Horario de Saida...: %d \n",aux->saida);system ("pause");}}void autorizar_Taxiamento(TAXI* t) {TAXI* aux = t ;

13

TAXI* ant = NULL;while (aux->prox != NULL) {ant = aux;aux = aux->prox;}ant->prox = NULL;t = ant;printf("Taximento Autorizado! \n\n");system ("pause");free(aux);}int main (int argc, char *argv[]) {TAXI* VoeBem;VoeBem = inicializar_Taxiamento();int opcao;do {system("CLS");system("TITLE ETAPA 3 - Passo 2 ");printf("\t\t\t Estrutura Taximento");printf("\n\n\n");printf("\t 1 - cadrastrar Taxiamento \n");printf("\t 2 - Exibir Taxiamento \n");printf("\t 3 - Autorizar Taxiamento \n");printf("\t 0 - Sair ");printf("\n\n");printf("\t Digite a opcao: ");scanf("%d",&opcao);switch(opcao){case 1:VoeBem = cadastrar_Taxiamento(VoeBem);break;case 2:imprimir_Taxiamento(VoeBem);break;case 3:autorizar_Taxiamento(VoeBem);break;case 0:break;default:printf("\n Opcao incorreta, tente novamente!\n");system ("pause");};} while (opcao != 0); system ("pause");return EXIT_SUCCESS; }

Passo 4 (Equipe)

14

Relatório 2 - Listas Ligadas

Nesta etapa foram criados programas com as estruturas de filas.O código fonte desse programa esta no passo 2 iremos mostrar as telas do console.

Nessa parte o menu.

Essa parte é a de cadastro de passagem que é a opção 1.

Essa etapa é exibição da passagem opção 2.

15

Exibiremos telas do programa do passo 3 dessa 2 etapa.

Essa opção é a opção 1 do sistema.

Essa é a opção 2 do sistema.

ETAPA 3

Passo 2 (Equipe)

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

// estrutura taxiamento

struct taxiamento

{

16

int numeroVoo;

int horarioSaida;

char modeloAeronave[10];

char empresaAerea[10];

struct taxiamento * prox; // ponteiro para o próximo

};

int main (int argc, char *argv[])

{

struct taxiamento * inicio = NULL,*fim, *novo,*aux,*imprime; // ponteiro para a struct

voo

int opcao = 0;

// enquanto for de 3

while(opcao != 3)

{

printf("\n");

printf("[1] Cadastrar Taxiamento\n");

printf("[2] Ordem de Autorizacao de Taxiamento \n");

printf("[3] Sair \n");

scanf("%d", &opcao);

}

if(opcao == 1)

{

// aloca memória

novo = (struct taxiamento*)malloc(sizeof(struct taxiamento));

// atualiza fim do ponteiro

novo->prox = (struct taxiamento*)NULL;

printf("\n");

printf("Digite o numero do voo: ");

scanf("%d", &novo->numeroVoo);

17

printf("Modelo da aeronave: ");

scanf("%s", &novo->modeloAeronave);

printf("Empresa Aerea: ");

scanf("%s", &novo->empresaAerea);

printf("Horario de Saida: ");

scanf("%d", &novo->horarioSaida);

if(inicio==(struct taxiamento *)NULL)

{

inicio = novo;

fim = inicio;

}

/*

O próximo é NULL porque só sabemos que uma lista encadeada chegou

ao fim quando o próximo elemento aponta para NULL

*/

return 0;

}else

{

//atribuindo o apontamento do ultimo registro para o novo

fim->prox = novo;

//apontando o ultimo registro como fim

fim = novo;

} if(opcao == 2)

{

// proximo_voo->prox = NULL;

// proximo_ponto aponta para o mesmo de ini_ponto, começa do início

imprime = inicio;

printf("\n");

}

// mostra todos os dados

18

// enquanto proximo_ponto for diferente de NULL

while(imprime != NULL)

{

printf(" Ordem de decolagem: \n Voo n.: %d, Modelo Aeronave: %s, Empresa Aerea:

%s, Horario de Saida: %d\n", imprime->numeroVoo, imprime-

>modeloAeronave,imprime->empresaAerea, imprime-> horarioSaida);

imprime = imprime->prox; // aponta para o próximo

}

}

Passo 3 (Equipe)

#include <stdio.h>

#include <stdlib.h>

// estrutura bagagem

struct bagagem

{

int codigoBag;

int numeroPassagem;

int numeroVoo;

int dataEmbarque;

int horaEmbarque;

int portaoEmbarque;

struct bagagem* prox; // ponteiro para o próximo

};

int main (int argc, char *argv[])

{

struct bagagem* inicio = NULL,*fim, *novo,*aux,*imprime; // ponteiro para a struct

voo

int opcao = 0;

// enquanto for de 3

19

while(opcao != 3)

{

printf("\n");

printf("[1] Cadastrar Bagagem \n");

printf("[2] Recuperar Bagagem \n");

printf("[3] Sair \n");

scanf("%d", &opcao);

if(opcao == 1)

{

// aloca memória

novo = (struct bagagem*)malloc(sizeof(struct bagagem));

// atualiza fim do ponteiro

novo->prox = (struct bagagem*)NULL;

printf("\n");

printf("Digitecodigo da bagagem: ");

scanf("%d", &novo->codigoBag);

printf("Digite o numero da passagem: ");

scanf("%d", &novo->numeroPassagem);

printf("Digite o numero do Voo: ");

scanf("%d", &novo->numeroVoo);

printf("Data do embarque: ");

scanf("%d", &novo->dataEmbarque);

printf("Horario de Embarque: ");

scanf("%d", &novo->horaEmbarque);

printf("Portao de embarque: ");

scanf("%d", &novo->portaoEmbarque);

if(inicio==(struct bagagem*)NULL)

{

inicio = novo;

fim = inicio;

}

20

else

{

//atribuindo o apontamento do primeiro registro para o ultimo da pilha

novo->prox = inicio;

//apontando o novo registro para o primeiro da pilha

inicio = novo;

}

}

else if(opcao == 2)

{

// proximo_voo->prox = NULL;

// proximo_ponto aponta para o mesmo de ini_ponto, começa do início

imprime = inicio;

printf("\n");

// mostra todos os dados

// enquanto proximo_ponto for diferente de NULL

while(imprime != NULL)

{

printf(" Recuperar bagagem :\n Codigo: %d, Numero da Passagem: %d, Numero do

Voo: %d, Data de Embarque: %d, Horario de Embarque: %d, Portao de Embarque:

%d \n", imprime->codigoBag, imprime->numeroPassagem,imprime->numeroVoo,

imprime-> dataEmbarque, imprime->horaEmbarque, imprime->portaoEmbarque);

imprime = imprime->prox; // aponta para o próximo

}

}

}

21

/*

O próximo é NULL porque só sabemos que uma lista encadeada chegou

ao fim quando o próximo elemento aponta para NULL

*/

return 0;

};

Passo 4 (Equipe)

Relatório 3 - Filas e Pilhas

Nesse programa usamos filas e pilhas para criar um programa com

leitura de passagem.

ETAPA 4

Passo 3 (Equipe)

22

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

void zerarVariaveis();

void montarGrafo();

void verificarAdjacencia();

void imprimirMatriz();

void comecarDeNovo();

int retornaIndice(char nome[30]);

void insereNoVetor(char nome[30]);

void caminhamentoAmplitude();

void caminhamentoProfundidade();

int pegaVerticeAdjNaoVisitado(int indice);

void zeraAsVisitas();

void insereNaFila(int indice);

int filaVazia();

int removeDaFila();

void push(int indice);

int pop();

int pilhaVazia();

#define MAXNOS 10

#define PARES 5

23

int matriz[MAXNOS][MAXNOS];

struct no

{

int visitado;

char descricao[30];

};

struct no vetor[MAXNOS];

int quantosNos;

struct pilha

{

int vetor[MAXNOS];

int topo;

};

struct pilha p;

struct fila

{

int vetor[MAXNOS];

int inicio, fim, quantos;

};

struct fila f;

void push(int indice)

24

{

if (p.topo == MAXNOS)

puts ("Pau Geral de Overflow na Pilha");

else

{

p.topo++;

p.vetor[p.topo] = indice;

}

}

int pop()

{

int indice = -1;

if (p.topo == -1)

puts ("Pau Geral de Underflow na Pilha");

else

{

indice = p.vetor[p.topo];

p.topo--;

}

return (indice);

}

int pilhaVazia()

{

25

int vazio = 1;

if (p.topo > -1)

vazio = 0;

return vazio;

}

void insereNaFila(int indice)

{

if (f.quantos == MAXNOS)

puts ("Pau Geral de Overflow na Fila");

else

{

if (f.fim == (MAXNOS-1))

f.fim = 0;

else

f.fim++;

f.vetor[f.fim] = indice;

f.quantos++;

}

}

int filaVazia()

{

int vazio = 1;

if (f.quantos > 0)

26

vazio = 0;

return vazio;

}

int removeDaFila()

{

int indice = -1;

if (f.quantos == 0)

puts ("Pau Geral de Underflow na Fila");

else

{

indice = f.vetor[f.inicio];

f.quantos--;

if (f.inicio == (MAXNOS-1))

f.inicio = 0;

else

f.inicio++;

}

return (indice);

}

void zerarVariaveis()

{

int i, j;

p.topo = -1;

27

f.inicio = f.quantos = 0;

f.fim = -1;

quantosNos = -1;

for (i = 0; i < MAXNOS; i++)

{

for (j = 0; j < MAXNOS; j++)

matriz[i][j] = 0;

vetor[i].visitado = 0;

strcpy(vetor[i].descricao, " ");

}

}

int pegaVerticeAdjNaoVisitado(int indice)

{

int coluna, retorna = -1;

for (coluna = 0; coluna

5 Bibliografias:

http://www.ime.usp.br/~pf/algoritmos/aulas/aloca.html . TENENBAUM, Aaron M. Estrutura de Dados Usando C. 1ª ed. São

Paulo: Pearson, 1995. https://docs.google.com/open?

id=0B_uLQd5hdqlWdU9tQi1yS1pTQXUzNEQ1d3BsbkZBUQ https://docs.google.com/open?

id=0B_uLQd5hdqlWUVV6N0FxbzdRZm1KT0d2Y282bU1Zdw https://docs.google.com/open?

id=0B_uLQd5hdqlWQXdYT19jQUJUd2Vob1BYQ3dWZEkydw https://docs.google.com/open?

id=0B_uLQd5hdqlWTVFzdzZRYTZSSDJRRm9hLVg1RjRxZw https://docs.google.com/open?

id=0B_uLQd5hdqlWcnBnQVk0YVpTUXFzUmMyc1NWaVpvQQ

28