[x] AULA 8.01 - INTRODUÇÃO
[x] AULA 8.02 - PILHAS I
[x] AULA 8.03 - PILHAS II
// Array para armazenar elementos.
var elementos = [];
// Variável para armazenar o último elemento.
var topo = -1;
// Constante para definir o tamanho máximo da pilha.
const max = 10;
function push(num) {
// Verificação para limite da pilha.
if (topo < max) {
topo ++;
elementos[topo] = num;
}
else
console.log("Pilha está cheia.");
}
function pop() {
// Verificação para saber se a lista está vazia.
if (topo != -1) {
// 'let' representa uma variável local.
let num = elementos[topo];
topo --;
return num;
}
else
console.log("Pilha está vazia.")
}
[x] AULA 8.04 - FILAS E LISTAS
[x] AULA 8.05 - BUSCA I
function busca(num) {
// Repetição para percorrer os elementos do array.
for (i = 0; i < elementos.length; i ++) {
// Verificação caso o número pertença ao array.
if (num == elementos[i])
return i;
}
// Retorna '-1' caso contrário.
return -1;
}
[x] AULA 8.06 - BUSCA II
Busca Binária: A partir de um determinado conjunto de valores, encontra o valor procurado subdividindo o array. A cada repetição, caso o elemento procurado seja menor, a metade da direita é descartada, caso contrário, a metade da esquerda é descartada até encontrar o elemento. Possui uma busca mais eficiente. Requisito: os valores precisam estar ordenados.
function buscaBin(num) {
// Definição de variáveis locais necessárias.
let inicio = 0, meio, fim = elementos[elementos.length - 1];
// Repetição para percorrer o array.
while (inicio <= fim) {
// Variável meio recebe o elemento central.
meio = parseInt((inicio + fim) / 2);
// Verificação caso o elemento seja encontrado.
if (num == elementos[meio])
return meio;
else {
// Caso o número buscado seja maior.
if (num > elementos[meio])
inicio = meio + 1;
// Caso o número buscado seja menor.
else
fim = meio - 1;
}
}
return -1;
}
[x] AULA 8.07 - ALGORITMOS DE ORDENAÇÃO I
function bolha() {
// Definição de variáveis locais necessárias.
let aux, inicio = 0, fim = elementos.length - 1;
// Repetição dentro de repetição para ordenar o array.
for (vezes = 0; vezes < elementos.length; vezes ++) {
for (pos = inicio; pos < fim - vezes; pos ++) {
// Caso elemento seja maior que seu próximo,
// ambos trocam de posição.
if (elementos[pos] > elementos[pos + 1]){
aux = elementos[pos];
elementos[pos] = elementos[pos + 1];
elementos[pos + 1] = aux;
}
}
}
}
[x] AULA 8.08 - ALGORITMOS DE ORDENAÇÃO II