**Enunciado de Problema: Eliminação de Sequência de Números em uma Lista Duplamente Encadeada**
Você é responsável por implementar uma estrutura de dados que representa uma lista duplamente encadeada e sua funcionalidade de remoção de uma sequência de números.
**Descrição do Problema:**
Dada uma lista duplamente encadeada de números inteiros, você deve implementar uma função que permita remover todos os nós que contêm números pertencentes a uma determinada sequência.
**Entrada:**
1. Uma lista duplamente encadeada de números inteiros, onde cada nó possui um valor e referências para o nó anterior e o próximo.
2. Uma sequência de números inteiros, que representa os valores a serem removidos da lista. A sequência pode conter valores duplicados e pode estar em qualquer ordem.
**Saída:**
A lista duplamente encadeada resultante após a remoção de todos os nós que contêm valores presentes na sequência.
**Requisitos:**
- Mantenha a integridade da lista duplamente encadeada após a remoção, garantindo que as referências entre os nós estejam corretamente ajustadas.
- A função deve ser eficiente em termos de tempo e espaço, considerando que a lista pode conter milhares de elementos.
- Caso a sequência a ser removida esteja vazia, a lista deve permanecer inalterada.
- Se nenhum valor da sequência estiver presente na lista, ela também deve permanecer inalterada.
**Exemplo:**
**Entrada:**
Lista: 3 <-> 5 <-> 1 <-> 8 <-> 9 <-> 5 <-> 7
Sequência a remover: [5, 1]
**Saída:**
Lista resultante: 3 <-> 8 <-> 9 <-> 7
**Observações:**
- Os métodos de inserção e impressão da lista devem ser previamente definidos.
- Garanta que a função de remoção esteja devidamente testada para casos como lista vazia, remoção de todos os elementos, e elementos que não estão presentes**Enunciado de Problema: Eliminação de Sequência de Números em uma Lista Duplamente Encadeada**
Você é responsável por implementar uma estrutura de dados que representa uma lista duplamente encadeada e sua funcionalidade de remoção de uma sequência de números.
**Descrição do Problema:**
Dada uma lista duplamente encadeada de números inteiros, você deve implementar uma função que permita remover todos os nós que contêm números pertencentes a uma determinada sequência.
**Entrada:**
1. Uma lista duplamente encadeada de números inteiros, onde cada nó possui um valor e referências para o nó anterior e o próximo.
2. Uma sequência de números inteiros, que representa os valores a serem removidos da lista. A sequência pode conter valores duplicados e pode estar em qualquer ordem.
**Saída:**
A lista duplamente encadeada resultante após a remoção de todos os nós que contêm valores presentes na sequência.
**Requisitos:**
- Mantenha a integridade da lista duplamente encadeada após a remoção, garantindo que as referências entre os nós estejam corretamente ajustadas.
- A função deve ser eficiente em termos de tempo e espaço, considerando que a lista pode conter milhares de elementos.
- Caso a sequência a ser removida esteja vazia, a lista deve permanecer inalterada.
- Se nenhum valor da sequência estiver presente na lista, ela também deve permanecer inalterada.
**Exemplo:**
**Entrada:**
Lista: 3 <-> 5 <-> 1 <-> 8 <-> 9 <-> 5 <-> 7
Sequência a remover: [5, 1]
**Saída:**
Lista resultante: 3 <-> 8 <-> 9 <-> 7
**Observações:**
- Os métodos de inserção e impressão da lista devem ser previamente definidos.
- Garanta que a função de remoção esteja devidamente testada para casos como lista vazia, remoção de todos os elementos, e elementos que não estão presentes na lista. na lista.
Dada uma lista duplamente encadeada de números inteiros, você deve implementar uma função que permita remover todos os nós que contêm números pertencentes a uma determinada sequência.
Use a estrutura de lista dupla definida em sala
Para realizar a operação, observe:
- A integridade da lista duplamente encadeada após a remoção, garantindo que as referências entre os nós estejam corretamente ajustadas.
- Caso a sequência a ser removida esteja vazia, a lista deve permanecer inalterada.
- Se nenhum valor da sequência estiver presente na lista, ela também deve permanecer inalterada.
- Só se deve remover a sequencia se ela toda estiver presente na lista sequenciamente e na ordem em que aparece na entrada.
- A sequencia só deve ser removida a primeira vez que aparece completa na lista.
Entrada:
A primeira linha contém uma sequencia de números inteiros, onde cada número possui um valor entre 0 e 32000. A lista termina com o valor -1 (que não faz parte da lista).
A segunda linha contém uma sequência de números inteiros, onde cada número possui um valor entre 0 e 32000, que representa os valores a serem removidos da lista. A lista termina com o valor -1 (que não faz parte da lista).
Saída:
A sequencia de números inteiros resultante após a remoção de todos os nós que contêm valores presentes na sequência.
Exemplo:
Entrada |
Saída |
3 5 1 8 9 5 7 -1
5 1 8 -1
|
3 9 5 7 |
3 7 1 5 9 7 1 2 -1
7 1 -1
|
3 5 9 7 1 2 |
10 4 6 8 9 1 4 6 8 12 3 -1
4 6 8 12 -1
|
10 4 6 8 9 1 3 |
3 9 5 7 -1
9 3 -1
|
3 9 5 7
|