Aula 04
C/C++, Java e Python
das estruturas:
C/C++, Java e Python
tem implementações nativas de estruturas lineares como Array, Lista, Pilha e Fila.Arrays tem tamanho fixo, e podem ser usados quando o tamanho da entrada é definido no enunciado.
C/C++:
// declaração
int a[5];
int b* = new int[5];
// acesso aos elementos
int tmp = a[0];
// alteração de valores
b[3] = 5;
Java:
// declaração
int a[] = new int[5];
// acesso aos elementos
int tmp = a[0];
// alteração de valores
a[3] = 5;
Listas tem tamanho variável, e devem ser usadas quando o tamanho não é conhecido previamente.
C/C++ - STL <vector>:
// inclusão da biblioteca
#include <vector>
using namespace std;
// declaração
vector<int> a;
// inclusão de elementos
a.push_back(3);
a.push_back(2);
// acesso aos elementos
int tmp = a[0];
// alteração de valores
a[1] = 5;
// número de elementos
a.size();
// remoção do segundo elemento
a.erase(a.begin()+1);
// remoção dos três primeiros elementos
a.erase(a.begin(),a.begin()+3);
Listas tem tamanho variável, e devem ser usadas quando o tamanho não é conhecido previamente.
Java - ArrayList:
// inclusão da biblioteca
import java.util.*;
// declaração
ArrayList<Integer> a = new ArrayList<Integer>();
// inclusão de elementos
a.add(3);
a.add(2);
// acesso aos elementos
int tmp = a.get(0);
// alteração de valores
a.set(1, 5);
// número de elementos
a.size();
// remoção do segundo elemento
a.remove(1);
// remoção dos três primeiros elementos
a.removeRange(0,3);
Listas tem tamanho variável, e devem ser usados quando o tamanho não é conhecido previamente.
Python:
# declaração
a = []
# inclusão de elementos
a.append(3)
a.append(2)
# acesso aos elementos
int tmp = a[0]
# alteração de valores
a[1] = 5
# número de elementos
len(a)
# remoção do segundo elemento
del a[1]
# remoção dos três primeiros elementos
del a[0:3]
Operações básicas para a manipulação de uma pilha.
C/C++ - STL <stack>:
// inclusão da biblioteca
#include <stack>
using namespace std;
// declaração
stack<int> a;
// inclusão de elementos
a.push(3);
a.push(2);
// acesso ao elemento do topo
int tmp = a.top();
// remoção do elemento do topo
a.pop();
// número de elementos
a.size();
// teste da pilha está vazia
a.empty();
Operações básicas para a manipulação de uma pilha.
Java - Stack:
// inclusão da biblioteca
import java.util.*;
// declaração
Stack<Integer> a = new Stack<Integer>();
// inclusão de elementos
a.push(3);
a.push(2);
// acesso ao elemento do topo
int tmp = a.peek();
// remoção do elemento do topo
a.pop();
// número de elementos
a.size();
// teste da pilha está vazia
a.empty();
O Python
não tem uma implementação específica de pilha, mas seu comportamento pode ser simulado usando uma lista.
Python:
# declaração
a = []
# inclusão de elementos
a.append(3)
a.append(2)
# acesso ao elemento do topo
int tmp = a[-1]
# remoção do elemento do topo
a.pop()
# número de elementos
len(a)
# teste da pilha está vazia
len(a) == 0
not a
Operações básicas para a manipulação de uma fila.
C/C++ - STL <queue>:
// inclusão da biblioteca
#include <queue>
using namespace std;
// declaração
queue<int> a;
// inclusão de elementos
a.push_back(3);
a.push_back(2);
// acesso ao elemento da frente
int tmp = a.front();
// acesso ao elemento de trás
tmp = a.back();
// remoção do elemento da frente
a.pop_front();
// número de elementos
a.size();
// teste da fila está vazia
a.empty();
Operações básicas para a manipulação de uma fila.
Java - Queue:
// inclusão da biblioteca
import java.util.*;
// declaração
// apesar de parecer estranho, a linha a seguir está correta!
// a classe Queue é uma interface, implementada pela class LinkedList.
Queue<Integer> a = new LinkedList<Integer>();
// inclusão de elementos
a.add(3);
a.add(2);
// acesso ao elemento da frente
int tmp = a.element();
// remoção do elemento da frente
a.remove();
// número de elementos
a.size();
// teste da fila está vazia
a.empty();
O Python
não tem uma implementação específica de fila, mas seu comportamento pode ser simulado usando a estrutura deque que permite inserção e remoção em ambos extremos.
Python - deque:
# declaração
a = deque([])
# inclusão de elementos
a.append(3)
a.append(2)
# acesso ao elemento da frente
int tmp = a[-1]
# remoção do elemento da frente
a.popleft()
# número de elementos
len(a)
# teste da pilha está vazia
len(a) == 0
not a
Leitura:
Exercícios:
Aula 04