Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- // Lista DESAFIO
- // Exercicio 1
- //estrutura para armazenamento de 1 nó
- typedef struct str_Info {
- int numero;
- } Tipo_Info;
- typedef struct str_Noh {
- Tipo_Info *info;
- struct str_Noh *prox;
- } Tipo_Noh;
- //alocacao do nó
- Tipo_Noh alocacao() {
- Tipo_Noh *ptLista;
- ptLista = (Tipo_Noh*)malloc(sizeof(Tipo_Noh)); //alocacao dinamica de 1 ponteiros inteiros
- ptLista->prox = NULL;
- return *ptLista;
- }
- //desalocacao do nó
- void desalocacao(Tipo_Noh *ptLista) {
- free(ptLista);
- }
- //inclusao de um nó no inicio da lista
- void inclusao_no_inicio(Tipo_Noh *ptLista, Tipo_Noh *pont) {
- pont->prox = ptLista;
- ptLista= pont;
- }
- //inclusao de um nó no fim da lista
- void inclusao_no_fim(Tipo_Noh *ptLista, Tipo_Noh *pont) {
- Tipo_Noh *ptr;
- ptr = ptLista;
- while (ptr->prox != NULL) {
- ptr = ptr->prox;
- }
- ptr->prox = pont;
- pont->prox = NULL;
- ptr = NULL;
- }
- //inclusao de um nó em uma lista ordenada
- void inclusao_ordenada(Tipo_Noh *ptLista, Tipo_Noh *pont) {
- Tipo_Noh *ptr, *ant;
- pont = NULL;
- ant = ptLista;
- ptr = ptLista->prox;
- while (ptr != NULL) {
- if (ptr->info->numero < pont->info->numero) {
- ant = ptr;
- ptr = ptr->prox;
- }
- else {
- pont->prox = ptr;
- ant->prox = pont;
- ptr = NULL;
- }
- }
- }
- //busca de um nó na lista desordenada
- void busca_desordenada(Tipo_Noh *ptLista, Tipo_Noh *pont) {
- Tipo_Noh *ptr;
- pont = NULL;
- ptr = ptLista->prox;
- while (ptr != NULL) {
- if (ptr->info->numero != pont->info->numero) {
- ptr = ptr->prox;
- }
- else {
- ptr = NULL;
- printf ("O noh procurado nao encontra-se na lista");
- }
- }
- }
- //busca de um nó na lista ordenada
- void busca_ordenada(Tipo_Noh *ptLista, Tipo_Noh *pont) {
- Tipo_Noh *ptr;
- pont = NULL;
- ptr = ptLista->prox;
- while (ptr != NULL) {
- if (ptr->info->numero < pont->info->numero) {
- ptr = ptr->prox;
- }
- else if (ptr->info->numero == pont->info->numero) {
- pont = ptr;
- ptr = NULL;
- printf ("Noh encontrado");
- }
- else {
- ptr = NULL;
- printf ("O noh procurado nao encontra-se na lista");
- }
- }
- }
- //impressao do conteudo de um nó
- void impressao_um_no(Tipo_Noh *ptLista, Tipo_Noh *pont) {
- Tipo_Noh *ptr;
- ptr = ptLista->prox;
- pont = NULL;
- while (ptr != NULL) {
- if (ptr->info->numero != pont->info->numero) {
- ptr = ptr->prox;
- }
- else {
- printf ("%d", pont->info->numero);
- ptr = NULL;
- }
- }
- //impressao do conteudo de todos os nos da lista
- void impressao_todos_nos(Tipo_Noh *ptLista) {
- Tipo_Noh *ptr;
- ptr = ptLista->prox;
- while (ptr != NULL) {
- ptr = ptr->prox;
- printf ("%d", ptr->info->numero);
- }
- }
- //impressao em arquivo binario de todos os nos da lista
- void impressao_arqbinario(Tipo_Noh *ptLista) {
- Tipo_Noh *ptr;
- ptr = ptLista->prox;
- FILE *arquivo;
- arquivo = fopen("ARQUIVO.bin", "wb") {
- if (arquivo == NULL) {
- printf("Nao eh possivel abrir o arquivo!");
- exit(1);
- }
- while (ptr != NULL) {
- fwrite(ptr->info->numero, sizeof(Tipo_Noh), 1, arquivo);
- ptr = ptr->prox;
- }
- fclose(arquivo);
- }
- }
- //leitura de arquivo binario de todos os nos da lista
- void leitura_arqbinario(Tipo_Noh *ptLista) {
- Tipo_Noh *ptr;
- FILE *arquivo;
- ptr = ptLista->prox;
- arquivo = fopen("ARQUIVO.BIN", "rb") {
- if (arquivo == NULL) {
- printf("Nao eh possivel abrir o arquivo!");
- exit(1);
- }
- while (ptr != NULL) {
- fread(ptr, sizeof(Tipo_Noh), 1, arquivo);
- ptr = ptr->prox;
- }
- fclose(arquivo);
- }
- }
- //remocao de um no da lista
- void remocao_desordenada(Tipo_Noh *ptLista, Tipo_Noh *pont) {
- Tipo_Noh *ptr, *ant;
- ptr = ptLista->prox;
- pont = NULL;
- ant = ptLista;
- while (ptr != NULL) {
- if(ptr->info->numero != pont->info->numero) {
- ant = ptr;
- ptr = ptr->prox;
- }
- else {
- pont = ptr;
- ant->prox = pont->prox;
- ptr = NULL;
- }
- }
- }
- //remocao completa da lista
- void remocao_lista(Tipo_Noh *ptLista) {
- if (ptLista->prox !=NULL) {
- remocao_lista(ptLista->prox);
- free(ptLista);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement