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);
}
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Jogos baixados na Central de Aplicativos mas que não abrem (1)
debian com wayland, configuracao de teclado. Mudou Tudo! [RESOLVIDO] (1)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (11)