From f7348d3602898408a2040a547e44b1d18c16bf9c Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Tue, 16 May 2017 13:52:49 -0300 Subject: [PATCH] =?UTF-8?q?Add=20fun=C3=A7=C3=A3o=20pertenceLista?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/lista.c | 10 ++++++++++ libs/lista.h | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/libs/lista.c b/libs/lista.c index 3e0700c..9178c23 100644 --- a/libs/lista.c +++ b/libs/lista.c @@ -147,6 +147,7 @@ bool removeNo(struct Lista *l, struct No *rNo, bool destroi(void *)) { for (No n = primeiroNoLista(l); getSucessorNo(n); n = getSucessorNo(n)) { if (getSucessorNo(n) == rNo) { setSucessorNo(n, getSucessorNo(rNo)); + setAntecessorNo(getSucessorNo(rNo), n); if (destroi != NULL) { r = destroi(getConteudo(rNo)); } @@ -157,3 +158,12 @@ bool removeNo(struct Lista *l, struct No *rNo, bool destroi(void *)) { } return false; } + +No pertenceLista(void *conteudo, Lista l) { + for(No n = primeiroNoLista(l); n; n = getSucessorNo(n)) { + if(conteudo == getConteudo(n)) { + return n; + } + } + return NULL; +} diff --git a/libs/lista.h b/libs/lista.h index 33eb814..58eedbe 100644 --- a/libs/lista.h +++ b/libs/lista.h @@ -62,4 +62,9 @@ bool destroiLista(Lista l, bool destroi(void *)); // false, se rNo não for um No de l bool removeNoLista(struct Lista *l, struct No *rNo, bool destroi(void *)); + +//------------------------------------------------------------------------------ +// retorna o nó que contém *conteudo se está na lista l, +// NULL caso contrário +No pertenceLista(void *conteudo, Lista l); #endif -- GitLab