Referência do Arquivo singlelinkedlist.h

Implementação uma biblioteca de lista simplesmente ligada genérica (Single Linked List). Mais...

#include <math.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>

Gráfico de dependência de inclusões para singlelinkedlist.h:

Este grafo mostra quais arquivos estão direta ou indiretamente relacionados com este arquivo:

Vá para o código-fonte deste arquivo.

Componentes

struct  struct_SingleLinkedList
struct  struct_SingleLinkedListNode

Definições de Tipos

typedef struct_SingleLinkedList SingleLinkedList
typedef struct_SingleLinkedListNode SingleLinkedListNode
typedef void * SLLDATA

Funções

SingleLinkedListNodebuildSingleLinkedListNode (SLLDATA data)
 Cria e inicializa o conteúdo de um novo node da lista ligada.
void destroySingleLinkedList (SingleLinkedList **refList)
 Destrói uma lista ligada simples, mas NÃO destrói o conteúdo dos nós da lista ligada.
void destroySingleLinkedListNode (SingleLinkedListNode **refNode)
 Destrói um node da lista ligada simples, mas NÃO destrói o conteúdo dos nós da lista ligada.
void dumpSingleLinkedList (SingleLinkedList *list)
 Dump do conteúdo da lista ligada.
SingleLinkedListnewSingleLinkedList ()
 Cria uma nova lista ligada simples.
SingleLinkedListNodenewSingleLinkedListNode ()
 Cria um novo node da lista ligada com conteúdo NULL.
int sllappend (SingleLinkedList **refList, SLLDATA data)
 Acrescenta um SingleLinkedListNode no final da lista ligada.
int slllength (SingleLinkedList *list)
 Retorna o tamanho da lista.
int sllpush (SingleLinkedList **refList, SLLDATA data)
 Acrescenta um SingleLinkedListNode no início da lista ligada.
SLLDATA sllremove_first (SingleLinkedList **refList)
 Remove o primeiro elemento da lista.
SLLDATA sllremove_last (SingleLinkedList **refList)
 Remove o último elemento da lista.
int sllsyncappend (SingleLinkedList **refList, SLLDATA data, pthread_mutex_t *refMutex)
 Acrescenta um SingleLinkedListNode no final da lista ligada garantindo a atomicidade da operação versão que deve ser utilizada em aplicações multi-thread que compartilham listas ligadas.
int sllsyncpush (SingleLinkedList **refList, SLLDATA data, pthread_mutex_t *refMutex)
 Acrescenta um SingleLinkedListNode no início da lista ligada garantindo a atomicidade da operação versão que deve ser utilizada em aplicações multi-thread que compartilham listas ligadas.


Descrição Detalhada

Implementação uma biblioteca de lista simplesmente ligada genérica (Single Linked List).

Autor:
Ernesto Colla (ernesto@gmail.com)
Versão:
0.0.1
Data:
2007-04-30
Implementação de uma biblioteca de lista ligada simples genérica com ponteiros para o primeiro e o último elementos para que a a inserção de um novo elemento no início e no final seja em tempo constante. A implentação foi feita para ser threadsafe, ou seja, pode ser utilizada para aplicação multithreads.

Definição no arquivo singlelinkedlist.h.


Definições dos tipos

typedef struct struct_SingleLinkedList SingleLinkedList

Single Linked List

typedef struct struct_SingleLinkedListNode SingleLinkedListNode

Node de uma Single Linked Liste de uma lista ligada

typedef void* SLLDATA

Alias para ponteiro void para armazenar dados nos nodes da lista ligada

Definição na linha 59 do arquivo singlelinkedlist.h.


Funções

SingleLinkedListNode* buildSingleLinkedListNode ( SLLDATA  data  ) 

Cria e inicializa o conteúdo de um novo node da lista ligada.

Parâmetros:
[in] data Dado a ser armazenado no Node
Retorna:
Ponteiro para um novo node da lista ligada de vértices

void destroySingleLinkedList ( SingleLinkedList **  refList  ) 

Destrói uma lista ligada simples, mas NÃO destrói o conteúdo dos nós da lista ligada.

Parâmetros:
[out] refList Referência à lista que deve ser desalocada, atribui NULL para refêrencia

void destroySingleLinkedListNode ( SingleLinkedListNode **  refNode  ) 

Destrói um node da lista ligada simples, mas NÃO destrói o conteúdo dos nós da lista ligada.

Parâmetros:
[out] refNode Referência ao Node da lista que deve ser destruido, atribui NULL para refêrencia

void dumpSingleLinkedList ( SingleLinkedList list  ) 

Dump do conteúdo da lista ligada.

Parâmetros:
[in] list Lista ligada

SingleLinkedList* newSingleLinkedList (  ) 

Cria uma nova lista ligada simples.

Para desalocar a memória utilizar destroySingleLinkedList

Retorna:
Ponteiro para uma lista ligada

SingleLinkedListNode* newSingleLinkedListNode (  ) 

Cria um novo node da lista ligada com conteúdo NULL.

Retorna:
Ponteiro para um novo node da lista ligada de vértices

int sllappend ( SingleLinkedList **  refList,
SLLDATA  data 
)

Acrescenta um SingleLinkedListNode no final da lista ligada.

O tempo de inserção de um novo elemento no início ou no fim da lista é linear. O node inserido passa a ser o last.

Parâmetros:
[out] refList Referência para lista na qual deve ser acrescentado o node
[in] data Conteúdo do SingleLinkedListNode que será criado e que dever ser acrescentado no final da lista
Retorna:
1 se inseriu com sucesso; 0 caso contrário

int slllength ( SingleLinkedList list  ) 

Retorna o tamanho da lista.

Parâmetros:
[in] list Lista da qual se deseja saber o tamanho
Retorna:
Tamanho da lista

int sllpush ( SingleLinkedList **  refList,
SLLDATA  data 
)

Acrescenta um SingleLinkedListNode no início da lista ligada.

O tempo de inserção de um novo elemento no início ou no fim da lista é linear. O node inserido passa a ser o first.

Parâmetros:
[out] refList Referência para lista na qual deve ser acrescentado o node
[in] data Conteúdo do SingleLinkedListNode que será criado e que dever ser acrescentado no início da lista
Retorna:
1 se inseriu com sucesso; 0 caso contrário

SLLDATA sllremove_first ( SingleLinkedList **  refList  ) 

Remove o primeiro elemento da lista.

Parâmetros:
[out] refList Referência para lista da qual deve ser removido o node
Retorna:
O conteúdo que estava armazenado no SingleLinkedListNode

SLLDATA sllremove_last ( SingleLinkedList **  refList  ) 

Remove o último elemento da lista.

Parâmetros:
[out] refList Referência para lista da qual deve ser removido o node
Retorna:
O conteúdo que estava armazenado no SingleLinkedListNode

int sllsyncappend ( SingleLinkedList **  refList,
SLLDATA  data,
pthread_mutex_t *  refMutex 
)

Acrescenta um SingleLinkedListNode no final da lista ligada garantindo a atomicidade da operação versão que deve ser utilizada em aplicações multi-thread que compartilham listas ligadas.

O tempo de inserção de um novo elemento no início ou no fim da lista é linear. O node inserido passa a ser o last.

Parâmetros:
[out] refList Referência para lista na qual deve ser acrescentado o node
[in] data Conteúdo do SingleLinkedListNode que será criado e que dever ser acrescentado no final da lista
[in] mutex Mutex utilizado para sincronizar a operação
Retorna:
1 se inseriu com sucesso; 0 caso contrário

int sllsyncpush ( SingleLinkedList **  refList,
SLLDATA  data,
pthread_mutex_t *  refMutex 
)

Acrescenta um SingleLinkedListNode no início da lista ligada garantindo a atomicidade da operação versão que deve ser utilizada em aplicações multi-thread que compartilham listas ligadas.

O tempo de inserção de um novo elemento no início ou no fim da lista é linear. O node inserido passa a ser o first.

Parâmetros:
[out] refList Referência para lista na qual deve ser acrescentado o node
[in] data Conteúdo do SingleLinkedListNode que será criado e que dever ser acrescentado no início da lista
[in] mutex Mutex utilizado para sincronizar a operação
Retorna:
1 se inseriu com sucesso; 0 caso contrário


Gerado em Fri Feb 15 19:50:41 2008 para IME-Dissertação por  doxygen 1.5.1