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);
}
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Organizando seus PDF com o Zotero
Erro no realm join [Resolvido]
Um programa para baixar vídeos: Parabolic
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Como propositadame... colocar bordas pretas na tela? (0)
Atalhos duplicados (sobras de instalações anteriores) (3)
Como fazer para mudar a frequência da GPU ou pelo menos da CPU no term... (7)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... (4)