Referência ao Ficheiro stack.c


Descrição Detalhada

Implementação de uma stack como lista ligada.

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

Definido no ficheiro stack.c.

Ir para o código fonte deste ficheiro.

Funções

Stack newStack ()
 Cria uma stack.
void stackDelete (Stack stack)
 Elemina uma stack.
int stackPush (Stack stack, void *inf)
 Insere um elemento numa stack.
int stackPop (Stack stack, void **inf)
 Remove o elemento que está no topo de uma stack.
int stackTop (Stack stack, void **inf)
 Verifica qual o elemento no topo de uma stack.
int stackSize (Stack stack)
 Determina o tamanho de uma stack.
int stackMap (Stack stack, void(*fun)(void *))
 Aplica uma função aos elementos de uma stack começando no topo.
Iterator stackIterator (Stack stack)
 Cria um iterador a partir de uma stack.


Documentação das Funções

Stack newStack (  ) 

Cria uma stack.

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

Retorna:
stack inicializada ou NULL.

Definido na linha 13 do ficheiro stack.c.

void stackDelete ( Stack  stack  ) 

Elemina uma stack.

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

Definido na linha 28 do ficheiro stack.c.

Iterator stackIterator ( Stack  stack  ) 

Cria um iterador a partir de uma stack.

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

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

Definido na linha 129 do ficheiro stack.c.

int stackMap ( Stack  stack,
void(*)(void *)  fun 
)

Aplica uma função aos elementos de uma stack começando no topo.

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

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

Definido na linha 113 do ficheiro stack.c.

int stackPop ( Stack  stack,
void **  inf 
)

Remove o elemento que está no topo de uma stack.

Permite devolver o elemento removido, caso o valor de inf seja diferente de NULL. Se a stack 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:
stack stack.
inf endereço onde é colocado o elemento removido (ou NULL).
Retorna:
0 se o elemento for removido;
1 se a stack estiver vazia.

Definido na linha 67 do ficheiro stack.c.

int stackPush ( Stack  stack,
void *  inf 
)

Insere um elemento numa stack.

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

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

Definido na linha 47 do ficheiro stack.c.

int stackSize ( Stack  stack  ) 

Determina o tamanho de uma stack.

Devolve o valor do campo size da stack.

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

Definido na linha 106 do ficheiro stack.c.

int stackTop ( Stack  stack,
void **  inf 
)

Verifica qual o elemento no topo de uma stack.

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

Atenção:
esta função coloca em inf o endereço da informação que está no topo da stack; 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:
stack stack.
inf endereço onde é colocado o resultado.
Retorna:
0 se a stack não estiver vazia;
1 se a stack estiver vazia.

Definido na linha 90 do ficheiro stack.c.


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