#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 | |
SingleLinkedListNode * | buildSingleLinkedListNode (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. | |
SingleLinkedList * | newSingleLinkedList () |
Cria uma nova lista ligada simples. | |
SingleLinkedListNode * | newSingleLinkedListNode () |
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. |
Definição no arquivo singlelinkedlist.h.
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.
SingleLinkedListNode* buildSingleLinkedListNode | ( | SLLDATA | data | ) |
Cria e inicializa o conteúdo de um novo node da lista ligada.
[in] | data | Dado a ser armazenado no Node |
void destroySingleLinkedList | ( | SingleLinkedList ** | refList | ) |
Destrói uma lista ligada simples, mas NÃO destrói o conteúdo dos nós da lista ligada.
[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.
[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.
[in] | list | Lista ligada |
SingleLinkedList* newSingleLinkedList | ( | ) |
Cria uma nova lista ligada simples.
Para desalocar a memória utilizar destroySingleLinkedList
SingleLinkedListNode* newSingleLinkedListNode | ( | ) |
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.
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.
[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 |
int slllength | ( | SingleLinkedList * | list | ) |
Retorna o tamanho da lista.
[in] | list | Lista da qual se deseja saber o tamanho |
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.
[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 |
SLLDATA sllremove_first | ( | SingleLinkedList ** | refList | ) |
Remove o primeiro elemento da lista.
[out] | refList | Referência para lista da qual deve ser removido o node |
SLLDATA sllremove_last | ( | SingleLinkedList ** | refList | ) |
Remove o último elemento da lista.
[out] | refList | Referência para lista da qual deve ser removido o node |
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.
[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 |
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.
[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 |