Enviado em 15/04/2018 - 18:20h
Boa noite!
/* lista.h */
#ifndef LISTA_H
#define LIST_H
typedef struct sCelula{
int dado;
struct sCelula *prox;
} Celula;
typedef struct sLista{
Celula* inicio;
} Lista;
#endif
/* lista.c */
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <malloc.h>
#include <math.h>
#include "lista.h"
void iniciarLista( Lista * lista){
lista->inicio = NULL;
}
void imprimirLista(Lista*lista){
Celula * p;
p = lista->inicio;
printf("Lista: ");
while( p != NULL){
printf("%d ",p->dado);
p = p->prox;
}
printf("\n");
}
void inserirInicio(Lista * lista, int dado){
Celula * p;
p = (Celula *) malloc( sizeof(Celula));
p->dado = dado;
p->prox = lista->inicio;
lista->inicio = p;
}
void excluirInicio(Lista*lista){
Celula * p;
p = lista->inicio;
lista->inicio=p->prox;
free(p);
}
Celula* busca(Lista*lista,int dado){
Celula* p;
for(p = lista->inicio; p != NULL; p=p->prox){
if(p->dado == dado)
return p;
}
return NULL;
}
void inverter(Lista * lista){
Celula *p, *q, *r;
if( lista->inicio != NULL){
p = lista->inicio;
q = p->prox;
p->prox = NULL;
if (q != NULL){
r = q->prox;
}
while(q != NULL){
q->prox = p;
p = q;
q = r;
if( r != NULL){
r = r->prox;
}
}
lista->inicio=p;
}
}
void excluirProximo(Lista*lista, Celula *p){
Celula * q;
if(p->prox != NULL){
q = p->prox;
p->prox = p->prox->prox;
free(q);
}
}
void concatenar(Lista** lista1, Lista** lista2) {
Celula* aux1;
Celula* aux2;
if(lista1 == NULL) {
*lista1 = *lista2;
} else {
aux1 = *lista1;
aux2 = *lista2;
imprimirLista(&aux1);
aux1->prox = aux2;
imprimirLista(&aux1);
}
}
main() {
setlocale(LC_ALL, "");
Lista* lista1;
Lista* lista2;
iniciarLista(&lista1);
iniciarLista(&lista2);
inserirInicio(&lista1, 3);
inserirInicio(&lista1, 2);
inserirInicio(&lista1, 1);
inserirInicio(&lista2, 5);
inserirInicio(&lista2, 4);
imprimirLista(&lista1);
imprimirLista(&lista2);
printf("-----------------\n");
concatenar(&lista1, &lista2);
//imprimirLista(&lista1);
}
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (1)
Vou voltar moderar conteúdos de Dicas e Artigos (0)
É cada coisa que me aparece! - não é só 3% (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta