Desafios de Programação

Aula 04

  • Conteúdo
    • Estruturas lineares
    • Atividades
Material Didático cedido pelo Professor Marcos Lage
Estruturas de dados elementares
O que é?
Estruturas de dados elementares
O que é?
Estruturas de dados elementares
Estruturas lineares
Estruturas de dados elementares
Array

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;
        
      
Estruturas de dados elementares
Lista

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);
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Lista

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);
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Lista

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]
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Pilha
Estruturas de dados elementares
Pilha

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();
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Pilha

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();
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Pilha

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
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Fila
Estruturas de dados elementares
Fila

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();
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Fila

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();
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Estruturas de dados elementares
Fila

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
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Atividades
Sugestão de estudo

Leitura:

Exercícios:

Desafios de Programação

Aula 04

  • Conteúdo
    • Estruturas lineares
    • Atividades
Material Didático cedido pelo Professor Marcos Lage