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

Lista de Estrutura de Dados

Por:   •  15/3/2021  •  Exam  •  907 Palavras (4 Páginas)  •  153 Visualizações

Página 1 de 4

#include <stdio.h>

#include <stdlib.h>

typedef struct sCanal{

int numCanal;

char nomeCanal[15];

}CH;

typedef struct sNO{

CH info;

struct sNO *esq;

struct sNO *dir;

}NO;

void inicializar(NO **lista){

*lista = NULL;

}

void alocarNo(NO* q){

q = (NO*) malloc (sizeof (NO));

}

void desalocarNo(NO* q){

free(q);

}

int vazia(NO* ptrLista){

if(ptrLista == NULL){

return 1; //lista vazia

}

else{

return 0;

}

}

void inserirCanal(NO** lista, int elem){

NO *atual = *lista;

NO *anterior = NULL;

NO *novo;

char canal[15];

alocarNo(novo);

if(novo!=NULL){

novo->info.numCanal = elem;

printf("Nome do canal %d:", elem);

scanf("%s", &canal);

novo->info.nomeCanal = canal;

novo->dir = NULL;

while(atual!=NULL && atual->info.numCanal < elem){

anterior = atual;

atual = atual->dir;

}

if(atual == *lista){ //insere no início

novo->dir = *lista;

*lista = novo;

} else{ //insere no meio ou no fim

anterior->dir = novo;

novo->dir = atual;

}

}

else{

printf("\nErro ao alocar o no!");

}

}

NO* pesquisar(NO **lista, int elem){

NO * aux;

if(vazia(*lista)==0){

while(aux->dir!=NULL){

if(aux->info.numCanal ==elem){

return aux; //encontrou o canal

aux = aux->dir;

}

}

}

else{

printf("CANAL NAO ENCONTRADO");

return NULL; //lista vazia ou não encontrou o canal

}

}

void exibirCanais(NO **lista){

NO* aux;

aux = *lista;

if(vazia(*lista)==0){

while(aux->dir!=NULL){

printf("%c ", aux->info);

aux = aux-> dir;

}

}

else{

printf("\nErro. Lista vazia.");

}

desalocarNo(aux);

}

void preencherCanais (NO **lista, int qtd) {//quantidade de canais {

int i;

for(i=1; i<=qtd; i++){

inserirCanal(*lista, i);

}

}

void exibirInverso(NO **lista){

NO* aux;

aux = *lista;

if((vazia(*lista)) ==0){

do{

aux = aux-> dir;

...

Baixar como (para membros premium)  txt (3.6 Kb)   pdf (40.1 Kb)   docx (10.2 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com