Referência ao Ficheiro stack.h


Descrição Detalhada

Implementação de uma stack como lista ligada.

Esta biblioteca disponibiliza um conjunto de funções que permitem manipular uma stack.

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

Definido no ficheiro stack.h.

Ir para o código fonte deste ficheiro.

Estruturas de Dados

struct  SStackNode
 Estrutura do nodo de uma stack. Mais...
struct  SStack
 Estrutura de uma stack. Mais...

Definições de Tipos

typedef SStackNodeStackNode
 Definição do apontador para os nodos da stack.
typedef SStackStack
 Definição da stack.

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