Pilha, lista e Bubble Sort em C
Instituto Federal Catarinense - Campus Videira
ˆ
Bacharelado em Ciencia da Computacao
¸˜
Estrutura de Dados
Para: Wagner Mariani
Aluno: Rafael Alves Vidal
30 de abril de 2014
Pilha, Lista e Bubble Sort
1
Pilha
´
O algoritmo da pilha utiliza os dados em ordem LIFO, ou seja, o ultimo elemento a entrar no vetor vai ser o primeiro
´ ı
´
a sair. A estrutura da pilha tem um topo, que e o ´ndice do ultimo elemento que entrou, um tamanho m´ ximo e os seus a elementos.
O algoritmo precisa verificar se a lista est´ vazia ou cheia. Para saber se ela est´ vazia nosso topo inicia em -1 para a a podermos chegar ao ´ndice 0. Para verificar se est´ cheia, o topo deve ser igual ao tamanho m´ ximo da pilha, sen˜ o ı a a a ainda existem espacos vagos.
¸
´
´
Para empilhar adicionamos o elemento recebido pelo usu´ rio na ultima posicao e para retirar removemos o ultimo a ¸˜ adicionado. Listing 1: Pilha
1
struct Pilha {
2
int topo; int max; float ∗pElem;
3
4
5
6
7
};
8
9
void criarpilha( struct Pilha ∗p, int c ){
10
p−>topo = −1; p−>max = c; p−>pElem = (float∗) malloc (c ∗ sizeof(float));
11
12
13
14
15
16
} int estavazia ( struct Pilha ∗p ){
17
if( p−> topo == −1 )
18
19
return 1;
20
21
else
22
23
return 0;
24
25
26
}
27
28
int estacheia ( struct Pilha ∗p ){
29
30
31
if (p−>topo == p−>max − 1)
return 1;
32
33
else
34
35
return 0;
36
37
38
}
39
40
void empilhar ( struct Pilha ∗p, float v){
41
p−>topo++; p−>pElem [p−>topo] = v;
42
43
44
45
}
46
47
float desempilhar ( struct Pilha ∗p ){
48
float aux = p−>pElem [p−>topo]; p−>topo−−; return aux;
49
50
51
52
53
}
54
55
float retornatopo ( struct Pilha ∗p ){
56
return p−>pElem [p−>topo];
57
58
59
}
60
61
int main(){
62
63
64
65
struct Pilha minhapilha; int capacidade = 5, op; float valor;
66
67