Você está na página 1de 28

FACNET

TECNOLOGIA EM ANLISE 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

SUMARIO______________________________________________________Pag. 2
1. ETAPA 1 - Estrutura de Dados.______________________________Pag.3
1.1 Passo 1 (Aluno)_______________________________________Pag.3
1.2 Passo 2 (Equipe)______________________________________Pag.3
1.3 Passo 3 (Equipe)______________________________________Pag.3 a 5
1.4 Passo 4 (Equipe)______________________________________Pag.6
2. ETAPA 2 -Listas Ligadas.__________________________________Pag.6
2.1 Passo 2 (Equipe)______________________________________Pag.6 a 8
2.2 Passo 3 (Equipe)_____________________________________Pag.8 a 10
2.3 Passo 4 (Equipe)_____________________________________Pag.10 a 11
3. ETAPA 3 - Filas e Pilhas._____________________________________Pag.12
3.1 Passo 2 (Equipe)____________________________________Pag.12 a 14
3.2 Passo 3 (Equipe)_____________________________________Pag.14 a 17
3.3 Passo 4 (Equipe)_____________________________________Pag.17 18
4. ETAPA 4Grafos._________________________________________Pag.18
4.1 Passo 3 (Equipe)_____________________________________Pag.18 a 23
5. Bibliografias.____________________________________________Pag.24

ETAPA 1

Passo 1
Somente a pesquisa no site do livro texto da disciplina: Comunicao de Dados e
Redes de Computadores e coletar informaes ao projeto a ser desenvolvido.
Passo 2
Somente a pesquisa e colher informaes teis na composio do projeto site sugerido:
http://www.mhhe.com/engcs/compsci/forouzan/
Passo 3
Pesquisar o site Clube do Hardware e colher informaes teis nos sites:
http://www.hardware.com.br/livros/redes/introducao.html
https://docs.google.com/a/aedu.com/file/d/0B9e1nI9U5ACjWnVQWExjVDNyNjQ/edit
Passo 4
1.1
Histrico da Empresa: A empresa atua no ramo financeiro, possui 40 funcionrios e
contm 5 departamentos.
1.2
Objetivos do Projeto: Implantar uma infraestrutura e manuteno projetada para atender
toda demanda da empresa melhorando sua performace
1.3
Esboo do Projeto de Redes de Computadores:************

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

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

Passo 2
Leitura do captulo do livro texto que apresenta informaes a respeito da camada fsica
dos sistemas de redes de computadores.
Passo 3

2.1
Topologia de redes: nosso projeto precisa de locais interiores contendo hosts ligados

4
atravez de uma rede, computadores sero ligados atravs de um switch que ir
intermediar as conexes da empresa, vai ter um roteador, servidores e estaes de
trabalho com desktop, impressoras e telefone *** (utilizar o Microsoft Visio) com a
ilustrao dos
computadores, cabeamento e equipamentos da rede.
2.2
Equipamentos do Sistema de Redes de Computadores:
- Rack 42U com Painel Lateral:
possui fcil instalao e tamanho compacto para otimizar o espao no data center.
- Path Panel:
fazer a conexo entre o cabeamento do rack de comunicaes e chega as tomadas destino.
- Swich TP-link:
para ajudar nas eventuais comunicaes.
- Roteador wireless D-link:
para otimizao de sinal.
- Servidor Dell:
para ser a central da rede interligando computadores.
- Estaes de trabalho:
contendo computador, telefone, cabeamento para acesso a internet.
2.3
Enlaces Internos de Comunicao:
Cabo Telefnico Metlico FAST-CIT para os setores com maiores trfegos de informaes,
passando pelo switch e as demais estaes, foco no wireless utilizado pelo setor com
maior privilgio escolhidopadro: IEEE 802.11
2.4
Enlace Externo de Comunicao:
O utilizado foi o link de conexo a internet NET IP fixo, que atua tanto para navegao
quanto para comunicao.
2.5
Oramento:
Rack 42U - R$ 2924.00
Path Panel - R$ 78,00
Switch TP-Link - R$52,00
Roteador D-Link - R$89,00
Servidor Dell PowerEdge - R$2.949,00
Cabeamento R$ 300,00
Estao de trabalho complete (cada) R$4.000
Total R$10.392,00

ETAPA 3
Passo1
Leitura dos captulos do livro texto ou complementar que trazem informaes referentes
camada de rede e roteamento do sistema de redes de computadores, bem como
segurana em redes de computadores.
Passo2
Acessar e pesquisar sites que divulgam informaes acerca da atribuio de endereos IP

5
e do endereamento IP interno de uma empresa.
Sites sugeridos:
http://www.iana.org
http://www.lacnic.net/pt/index.html

Passo3
Fazer uma pesquisa na Internet em busca de informaes sobre os principais softwares de
firewall disponveis no mercado. Pesquisar tambm sites sobre segurana em redes e
sistemas de informao.
Sites sugeridos para pesquisa:
http://mitnicksecurity.com
http://www.crime-research.org
http://www.crime-research.org/analytics/computer_crime22/
Programas para firewall: Comodo Internet Security, Agnitum Outpost, AShampoo
Passo 4
3.1
Estrutura de Endereamento de Rede:
3.2
3.3
Poltica de privacidade: definido as informaes pessoais, sejam elas de clientes, usurios
ou funcionrios que forem acessadas ficaram na guarda na empresa.
Poltica de confidencialidade: define como so tratadas as informaes institucionais, ou
seja, se elas podem ser repassadas a terceiros.
Poltica de uso aceitvel (PUA) ou Acceptable Use Policy (AUP): tambm chamada de
"Termo de Uso" ou "Termo de Servio", define as regras de uso dos recursos
computacionais, os direitos e as responsabilidades de quem os utiliza e as situaes que
so consideradas abusivas.
3.4
Poltica de Senhas:
O critrio utilizado na construo de senha ser o de ter 5 a 8 caracteres e ao menos um
nmero entre eles.
3.5
Sistema de Firewall:
- Fazer o download do Endian Firewall no site
- Instalao do .iso
- Configurao inicial basta apertar enter nos parmetros pedidos
- Coloque seu endereo e ip e a mascara no campo desejado
- aps a instalao acesse em um navegador o endereo que voc colocou na interface .
- ir abrir a tela de boas vindas de inicializao demonstrando que foi instalado.
- selecione o idioma e o parmetro desejado e clique em avanar
- clique em configurao SSH e configure de acordo com sua mquina
- Selecione o botofiltro de contedo/bloqueio de portas

- adicione na tabela os dns desejados para controlar seu firewall


Passo 4
Fazer o Relatrio 03: Poltica e Sistema de Endereamento de Rede do projeto e
Segurana de

6
Redes. Nesta etapa, o grupo dever fazer um projeto de rede de computadores
com os
seguintes captulos:
3.1 Estrutura de Endereamento de Rede: apresentar um planejamento da estrutura
de
endereamento IP para a rede local. Fazer a descrio da poltica de endereamento
informando a classe de endereamento IP utilizada na rede interna, se o
endereamento IP esttico ou dinmico e as razes para a escolha do tipo de
endereamento. Descrever os endereos IPs, os intervalos de endereos IPs utilizados
em cada departamento, as sub-redes e as mscaras de rede utilizadas.
3.2 Planos Futuros de Endereamento: apresentar um estudo para a implantao
do
sistema de endereamento IPv6, descrevendo a faixa de endereos a ser utilizada em
toda a rede para esta verso de endereamento.
3.3 Poltica de Segurana no Sistema: escrever uma poltica de segurana para o sistema
de informao da empresa por meio de um Checklist de atividades proibidas na
utilizao de seu sistema e de um manual de boas prticas de utilizao do sistema.

==================================
ETAPA 1
Passo 1 (Aluno)
Somente a leitura pedida no material sobre introduo s Estruturas de Dados
vetores e matrizesvoltadas linguagem C nos comandos da ATPS.
Passo 2 (Equipe)
Nesta etapa na verdade no chegamos nem a discutir, pois na realidade estvamos mais
era aprendendo, mas estudamos em cima do contedo destacado na ATPS que foram:
1. Alocao de Memria;
2. Ponteiros em C;
3. Estruturas de dados e C;
4. Vetores em C;
5. Implementando vetores unidimensionais;
6. Operaes com strings de caracteres;
7. Estruturas em C;
8. Implementando estruturas.
Passo 3 (Equipe)

Atividade 1.
Alocao esttica de memria
Ao se declarar uma varivel qualquer, o compilador deixa reservado um espao
suficiente na memria para armazen-la.
int a; // 4 bytes
float x; // 4 bytes
double y; // 8 bytes
char c; // 1 byte
char *c; // 4 bytes.
Alocao esttica de memria
Ao fazer a alocao esttica, apenas o espao necessrio na memria reservado
O contedo de cada posio no alterado, e portanto uma varivel apenas declarada
pode conter qualquer coisa
Inicializar as variveis, 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;
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");

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)
Relatrio 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
avio, e o exibisse, como pedido usamos uma STRUCT chamada avio, montamos toda a
estrutura do programa que foi apresentado logo a cima, o grupo se desempenhou muito bem
nessa etapa superando as dificuldades que tnhamos e buscando se aprofundar mais e sanar
as duvidas.

ETAPA 2
Passo 2 (Equipe)
#include<stdlib.h>
#include<stdio.h>

10

#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);
};
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);

11

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 no 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");
};
}while (opcao != 0);
system ("pause");
return EXIT_SUCCESS;
}
Passo 3 (Equipe)
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

12

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 ;
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[]) {

13

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)
Relatrio 2 - Listas Ligadas
Nesta etapa foram criados programas com as estruturas de filas.
O cdigo fonte desse programa esta no passo 2 iremos mostrar as telas do console.
Nessa parte o menu.

14

Essa parte a de cadastro de passagem que a opo 1.

Essa etapa exibio da passagem opo 2.

Exibiremos telas do programa do passo 3 dessa 2 etapa.


Essa opo a opo 1 do sistema.

15

Essa a opo 2 do sistema.

ETAPA 3
Passo 2 (Equipe)

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
// estrutura taxiamento
struct taxiamento
{
int numeroVoo;
int horarioSaida;
char modeloAeronave[10];

16

char empresaAerea[10];
struct taxiamento * prox; // ponteiro para o prximo
};
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 memria
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);
printf("Modelo da aeronave: ");
scanf("%s", &novo->modeloAeronave);
printf("Empresa Aerea: ");

17

scanf("%s", &novo->empresaAerea);
printf("Horario de Saida: ");
scanf("%d", &novo->horarioSaida);
if(inicio==(struct taxiamento *)NULL)
{
inicio = novo;
fim = inicio;
}
/*
O prximo NULL porque s sabemos que uma lista encadeada chegou
ao fim quando o prximo 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, comea do incio
imprime = inicio;
printf("\n");
}
// mostra todos os dados
// enquanto proximo_ponto for diferente de NULL
while(imprime != NULL)
{

18

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 prximo
}
}
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 prximo
};
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
while(opcao != 3)
{
printf("\n");

19

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


printf("[2] Recuperar Bagagem \n");
printf("[3] Sair \n");
scanf("%d", &opcao);
if(opcao == 1)
{
// aloca memria
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;
}

else

20

{
//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, comea do incio
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 prximo
}
}
}
/*
O prximo NULL porque s sabemos que uma lista encadeada chegou
ao fim quando o prximo elemento aponta para NULL

21

*/
return 0;
};
Passo 4 (Equipe)
Relatrio 3 - Filas e Pilhas
Nesse programa usamos filas e pilhas para criar um programa com
leitura de passagem.

ETAPA 4

Passo 3 (Equipe)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

22

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

int matriz[MAXNOS][MAXNOS];

23

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;

26

if (f.quantos > 0)
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()
{

27

int i, j;
p.topo = -1;
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. So
Paulo: Pearson, 1995.
https://docs.google.com/open?
id=0B_uLQd5hdqlWdU9tQi1yS1pTQXUzNEQ1d3BsbkZBUQ
https://docs.google.com/open?
id=0B_uLQd5hdqlWUVV6N0FxbzdRZm1KT0d2Y282bU1Zdw

28

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

Você também pode gostar