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

A ESTRUTURA DE DADOS

Por:   •  16/11/2020  •  Projeto de pesquisa  •  618 Palavras (3 Páginas)  •  91 Visualizações

Página 1 de 3

[pic 1]

 

 

 

 

 

 

 

 

 

 

TRABALHO SEMESTRAL ESTRUTURA DE DADOS 

 

 

 

 

 

 

 

 

 

Aluno: Marcos Messias Borges

RA: N4202E-0

Campus: Cidade Universitária

         

CÓDIGO FONTE

 

#include <stdio.h>

#include <stdlib.h>

 

struct Node{  int num;  struct Node *prox;

};

typedef struct Node node;

 

int tam;

 

int menu(void); void inicia(node *PILHA); void opcao(node *PILHA, int op); void exibe(node *PILHA); void libera(node *PILHA); void push(node *PILHA); node *pop(node *PILHA);

 

 

int main(void)

{

 node *PILHA = (node *) malloc(sizeof(node));  if(!PILHA){   printf("Sem memoria disponivel!\n");

  exit(1);  }else{  inicia(PILHA);  int opt;

 

 do{   opt=menu();   opcao(PILHA,opt);

 }while(opt);

 

 free(PILHA);  return 0;

 }

}

 

void inicia(node *PILHA)

{

 PILHA->prox = NULL;  tam=0;

}

 

int menu(void)

{  int opt;

 

 printf("Escolha a opcao\n");  printf("0. Sair\n");  printf("1. Zerar PILHA\n"); printf("2. Exibir PILHA\n"); printf("3. Adicionar elemento\n"); printf("4. Remover elemento\n");  printf("Opcao: "); scanf("%d", &opt);

 

 return opt;

}

 

void opcao(node *PILHA, int op)

{

 node *tmp;  switch(op){   case 0:    libera(PILHA);    break;

 

  case 1:    libera(PILHA);    inicia(PILHA);    break;

 

  case 2:    exibe(PILHA);    break;

 

  case 3:    push(PILHA);    break;

 

  case 4:

   tmp= pop(PILHA);    if(tmp != NULL)    printf("Retirado: %3d\n\n", tmp->num);    break;

 

  default:

   printf("Comando invalido\n\n");

 }

}

 

int vazia(node *PILHA)

{

 if(PILHA->prox == NULL)   return 1;  else   return 0;

}

 

node *aloca()

{

 node *novo=(node *) malloc(sizeof(node));  if(!novo){   printf("Sem memoria disponivel!\n");

  exit(1);

 }else{   printf("Novo elemento: "); scanf("%d", &novo->num);   return novo;

 }

}

void exibe(node *PILHA)

{

 if(vazia(PILHA)){   printf("PILHA vazia!\n\n");   return ;

 }

 

 node *tmp;  tmp = PILHA->prox;  printf("PILHA:");  while( tmp != NULL){   printf("%5d", tmp->num);   tmp = tmp->prox;

 }  printf("\n        ");  int count;  for(count=0 ; count < tam ; count++)

...

Baixar como (para membros premium)  txt (3.1 Kb)   pdf (94 Kb)   docx (34.5 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com