Escolar Documentos
Profissional Documentos
Cultura Documentos
Prova 1
Nome: ___________________________________________________________________
}
Questão 2: Implemente a seguinte função utilizando std::set.
// Retorna os elementos na interseção de ‘a’ e ‘b’.
set<int> Interseção(const set<int>& a, const set<int>& b) {
set<int> inter={};
if(!(a.empyt()) && !(b.empyt())){
for(auto it=a.begin();it!=a.cend(); it++){
if(a.count(*it)==1 && b.count(*it)==1){
inter.insert(*it);
}
}
}
return inter;
}
Questão 3: Considere o seguinte TAD que representa uma fila de duas pontas. Note que a
classe está implementada utilizando lista encadeada simples. Você deve especificar, na
primeira das questões abaixo, como você quer representar um nó da lista encadeada.
private:
No* primeiro_;
No* ultimo_;
};
Questão 3a: Implemente o método FilaDupla::tamanho(). DICA: Você pode usar (ou
não) funções auxiliares para auxiliar na resolução da questão. Estas funções podem ser
globais, ou métodos privados da classe conjunto.
int FilaDupla::tamanho() {
int n = 0;
for (No* it = primeiro_; it != nullptr; it = it->proximo) {
n++;
}
return n;
}
Questão 3b (4 pts): Implemente o método void FilaDupla::InserirNoFim(int k).
void FilaDupla::InserirNoFim(int k) {
No* novo = new No;
novo->chave = k;
novo->proximo = nullptr;
if (primeiro_ == nullptr) {
primeiro_ = novo;
ultimo_ = novo;
} else {
ultimo_->proximo = novo;
ultimo_ = novo;
}
}