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

Trabalho G1 - Estrutura de dados II

Por:   •  11/4/2018  •  Trabalho acadêmico  •  3.556 Palavras (15 Páginas)  •  215 Visualizações

Página 1 de 15

#include <conio.h>

#include <string.h>

#include <stdio.h>

#include<stdlib.h>

void push(struct arvore **topo, char mat[10], char nome[30]);

void cadastrar (struct arvore **lista);

void exibe_arvore(struct arvore *lista, int nivel);

void emOrdem(struct arvore *lista);

void posOrdem(struct arvore *lista);

void preOrdem(struct arvore *lista);

void remover(arvore **lista, char nome[30]);

arvore *MaiorEsquerda(arvore **lista);

struct arvore {

char mat[10];

char nome[30];

struct arvore *direita, *esquerda;

};

int main(){

struct arvore *binario = NULL;

int menu;

char mat[10];

char nome[30];

do{

printf("\n 1) Inserir um cadastro");

printf("\n 2) Exibir arvore");

printf("\n 3) Listagem em ORDEM");

printf("\n 4) Listagem em PRE-ORDEM");

printf("\n 5) Listagem em POS-ORDEM");

printf("\n 6) Remover");

printf("\n 0) Sair \n");

scanf("%i", &menu);

switch(menu) {

case(1):

system("cls");

cadastrar(&binario);

system("cls");

break;

case(2):

system("cls");

exibe_arvore(binario,0);

getch();

system("cls");

break;

case(3):

system("cls");

printf("Ordenacao em ORDEM \n");

emOrdem(binario);

getch();

system("cls");

break;

case(4):

system("cls");

printf("Ordenacao em PRE - ORDEM \n");

preOrdem(binario);

getch();

system("cls");

break;

case(5):

system("cls");

printf("Ordenacao em POS - ORDEM \n");

posOrdem(binario);

getch();

system("cls");

break;

case(6):

system("cls");

printf("\nDigite o nome: ");

scanf("%s", &nome);

remover(&binario,nome);

printf("\n%s foi exluido",nome);

getch();

system("cls");

break;

}

} while (menu !=0 && menu <= 6);

}

void push(struct arvore **topo, char mat[10], char nome[30]) {

struct arvore *p;

if ((*topo) == NULL){

(*topo) = (struct arvore *) malloc (sizeof(struct arvore));

(*topo)->esquerda = NULL;

(*topo)->direita = NULL;

strcpy((*topo)->mat , mat);

strcpy((*topo)->nome, nome);

}

else{

if(strcmp((*topo)->nome,nome)>0){

push(&(*topo)->esquerda, mat, nome);

} else {

...

Baixar como (para membros premium)  txt (9.1 Kb)   pdf (52 Kb)   docx (16 Kb)  
Continuar por mais 14 páginas »
Disponível apenas no TrabalhosGratuitos.com