Referência ao Ficheiro list.h


Descrição Detalhada

Implementação de uma lista (duplamente) ligada.

Esta biblioteca disponibiliza um conjunto de funções que permitem manipular uma lista (duplamente) ligada.

Autor:
Rui Carlos A. Gonçalves <rcgoncalves.pt@gmail.com>
Versão:
2.0.1
Data:
02/2009

Definido no ficheiro list.h.

Ir para o código fonte deste ficheiro.

Estruturas de Dados

struct  SListNode
 Estrutura do nodo da lista. Mais...
struct  SList
 Estrutura da lista. Mais...

Definições de Tipos

typedef SListNodeListNode
 Definição do apontador para os nodos da lista.
typedef SListList
 Definição da lista.

Funções

List newList ()
 Cria uma lista.
void listDelete (List list)
 Elimina uma lista.
int listInsertFst (List list, void *inf)
 Insere um elemento no início de uma lista.
int listInsertLst (List list, void *inf)
 Insere um elemento no fim de uma lista.
int listInsertAt (List list, int index, void *inf)
 Insere um elemento numa determinada posição de uma lista.
int listRemoveFst (List list, void **inf)
 Remove o primeiro elemento de uma lista.
int listRemoveLst (List list, void **inf)
 Remove o último elemento de uma lista.
int listRemoveAt (List list, int index, void **inf)
 Remove o elemento de uma determinada posição de uma lista.
int listFst (List list, void **inf)
 Verifica qual o primeiro elemento de uma lista.
int listLst (List list, void **inf)
 Verifica qual o último elemento de uma lista.
int listAt (List list, int index, void **inf)
 Verifica qual o elemento numa determinada posição de uma lista.
int listSize (List list)
 Determina o tamanho de uma lista.
int listMap (List list, void(*fun)(void *))
 Aplica uma função aos elementos de uma lista.
Iterator listIterator (List list)
 Cria um iterador a partir de uma lista.


Documentação das Funções

int listAt ( List  list,
int  index,
void **  inf 
)

Verifica qual o elemento numa determinada posição de uma lista.

A posição, especificada pelo argumento index, tem que estar entre 0 e o tamanho da lista menos 1. Se isto não acontecer é colocado o valor NULL em inf.

Atenção:
esta função coloca em inf o endereço do elemento pretendido; depois de executar esta função é aconselhável fazer uma cópia da informação e passar a trabalhar com a cópia para que não haja problemas de partilha de referências.
Parâmetros:
list lista.
index posição do elemento que procuramos.
inf endereço onde será colocado o resultado.
Retorna:
0 se o valor de index for válido;
1 se o valor de index não for válido.

Definido na linha 321 do ficheiro list.c.

void listDelete ( List  list  ) 

Elimina uma lista.

Atenção:
apenas liberta a memória referente à estrutura da lista; não liberta o espaço ocupado pelos elementos nela contidos.
Parâmetros:
list lista.

Definido na linha 28 do ficheiro list.c.

int listFst ( List  list,
void **  inf 
)

Verifica qual o primeiro elemento de uma lista.

Se a lista estiver vazia é colocado o valor NULL em inf.

Atenção:
esta função coloca em inf o endereço do elemento pretendido; depois de executar esta função é aconselhável fazer uma cópia da informação e passar a trabalhar com a cópia para que não haja problemas de partilha de referências.
Parâmetros:
list lista.
inf endereço onde é colocado o resultado.
Retorna:
0 se a lista não estiver vazia;
1 se a lista estiver vazia.

Definido na linha 289 do ficheiro list.c.

int listInsertAt ( List  list,
int  index,
void *  inf 
)

Insere um elemento numa determinada posição de uma lista.

A posição, especificada pelo argumento index, tem que estar entre 0 e o tamanho da lista. O (n+1)-ésimo elemento e todos os seguintes avançam uma posição.

Parâmetros:
list lista.
index posição em que será inserido.
inf endereço do elemento que queremos inserir.
Retorna:
0 se o elemento for inserido;
1 se o valor de index não for válido;
2 se não for possível alocar memória para o novo elemento.

Definido na linha 133 do ficheiro list.c.

int listInsertFst ( List  list,
void *  inf 
)

Insere um elemento no início de uma lista.

Verifica se é possível inserir o elemento, devolvendo 1 caso não seja possível.

Parâmetros:
list lista.
inf endereço do elementos que queremos inserir.
Retorna:
0 se o elemento for inserido;
1 se não for possível alocar memória para o novo elemento.

Definido na linha 45 do ficheiro list.c.

int listInsertLst ( List  list,
void *  inf 
)

Insere um elemento no fim de uma lista.

Verifica se é possível inserir o elemento, devolvendo 1 caso não seja possível.

Parâmetros:
list lista.
inf endereço do elemento que queremos inserir.
Retorna:
0 se o elemento for inserido;
1 se não for possível alocar memória para o novo elemento.

Definido na linha 89 do ficheiro list.c.

Iterator listIterator ( List  list  ) 

Cria um iterador a partir de uma lista.

Se ocorrer algum erro a função devolve NULL.

Ver Também:
Iterator
Parâmetros:
list lista.
Retorna:
iterador criado ou NULL.

Definido na linha 366 do ficheiro list.c.

int listLst ( List  list,
void **  inf 
)

Verifica qual o último elemento de uma lista.

Se a lista estiver vazia é colocado o valor NULL em inf.

Atenção:
esta função coloca em inf o endereço do elemento pretendido; depois de executar esta função é aconselhável fazer uma cópia da informação e passar a trabalhar com a cópia para que não haja problemas de partilha de referências.
Parâmetros:
list lista.
inf endereço onde é colocado o resultado.
Retorna:
0 se a lista não estiver vazia;
1 se a lista estiver vazia.

Definido na linha 305 do ficheiro list.c.

int listMap ( List  list,
void(*)(void *)  fun 
)

Aplica uma função aos elementos de uma lista.

A função fun tem que ser do tipo: void fun(void*).

Parâmetros:
list lista.
fun função a ser aplicada.
Retorna:
0 se a lista não estiver vazia;
1 se a lista estiver vazia.

Definido na linha 350 do ficheiro list.c.

int listRemoveAt ( List  list,
int  index,
void **  inf 
)

Remove o elemento de uma determinada posição de uma lista.

Permite devolver a informação do elemento removido, caso o valor de inf seja diferente de NULL. Se a lista estiver vazia é colocado o valor NULL em inf.
A posição, especificada pelo argumento n, tem que estar entre 0 e o tamanho da lista menos 1. O n-ésimo elemento e todos os seguintes recuam uma posição.

Atenção:
esta função não liberta o espaço ocupado pelo elemento removido.
Parâmetros:
list lista.
index posição do elemento que queremos remover.
inf endereço onde é colocado o elemento removido (ou NULL).
Retorna:
0 se o elemento for removido;
1 se o valor de n não for válido.

Definido na linha 253 do ficheiro list.c.

int listRemoveFst ( List  list,
void **  inf 
)

Remove o primeiro elemento de uma lista.

Permite devolver a informação do elemento removido, caso o valor de inf seja diferente de NULL. Se a lista estiver vazia é colocado o valor NULL em inf.

Atenção:
esta função não liberta o espaço ocupado pelo elemento removido.
Parâmetros:
list lista.
inf endereço onde é colocado o elemento removido (ou NULL).
Retorna:
0 se o elemento for removido;
1 se a lista estiver vazia.

Definido na linha 185 do ficheiro list.c.

int listRemoveLst ( List  list,
void **  inf 
)

Remove o último elemento de uma lista.

Permite devolver a informação do elemento removido, caso o valor de inf seja diferente de NULL. Se a lista estiver vazia é colocado o valor NULL em inf.

Atenção:
esta função não liberta o espaço ocupado pelo elemento removido.
Parâmetros:
list lista.
inf endereço onde é colocado o elemento removido (ou NULL).
Retorna:
0 se o elemento for removido;
1 se a lista estiver vazia.

Definido na linha 219 do ficheiro list.c.

int listSize ( List  list  ) 

Determina o tamanho de uma lista.

Devolve o valor do campo size da lista.

Parâmetros:
list lista.
Retorna:
número de elementos da lista.

Definido na linha 343 do ficheiro list.c.

List newList (  ) 

Cria uma lista.

Se não for possível criar a lista devolve NULL.

Retorna:
lista inicializada ou NULL.

Definido na linha 13 do ficheiro list.c.


LibRCG © 2004-2009   Rui Carlos A. Gonçalves