Referência ao Ficheiro list.c


Descrição Detalhada

Implementação de 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.c.

Ir para o código fonte deste ficheiro.

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