4
The problem is:
Write a program and make a function to concatenate two lists of integers into a third list that must be returned by the function, in C#.
My doubt is only on how to concatenate the list.
Code of the class representing the list (Lista
)
using System;
namespace ListaLib
{
public class Lista
{
/// <summary>
/// Referência do primeiro nó (elemento) da lista
/// </summary>
public NoLista InicioLista { get; set; }
/// <summary>
/// Construtora da classe lista
/// </summary>
public Lista()
{
InicioLista = null;
}
/// <summary>
/// Remove um valor da lista
/// </summary>
/// <param name="valor">Valor a ser removido</param>
/// <returns>true se encontrar e false se não encontrar</returns>
public bool Remove(int valor)
{
bool valorRetorno = false;
NoLista auxiliar = InicioLista;
// Verificar se a lista está vazia
if (auxiliar != null)
{
// Percorrer lista (navegar) até achar o nó com o valor desejado
while ((auxiliar != null) && (auxiliar.informacao != valor))
{
// Passa para o próximo elemento da lista
auxiliar = auxiliar.proximo;
}
// So atualizar a lista se o valor foi encontrado
if (auxiliar.informacao == valor)
{
// Verificar se existe um proximo elemento na lista
if (auxiliar.proximo != null)
{
// Remover a referencia do nó anterior
(auxiliar.proximo).anterior = null;
}
// Verificar se é o primeiro da lista
if (InicioLista.informacao == valor)
{
InicioLista = InicioLista.proximo;
}
else
{
// Verificar se existe um proximo elemento na lista
if (auxiliar.proximo != null)
{
(auxiliar.proximo).anterior = auxiliar.anterior;
}
// Fazer o anterior do auxiliar apontar para o proximo do auxiliar
(auxiliar.anterior).proximo = auxiliar.proximo;
}
}
}
return valorRetorno;
}
/// <summary>
/// Adiona um novo valor na lista
/// </summary>
/// <param name="valor">Valor a ser adicionado</param>
public void Add(int valor)
{
NoLista novoNo = new NoLista();
novoNo.informacao = valor;
// Verificar se é o primeiro da lista
if (InicioLista == null)
{
InicioLista = novoNo;
}
else
{
NoLista auxiliar = InicioLista;
while (auxiliar.proximo != null)
{
auxiliar = auxiliar.proximo;
}
auxiliar.proximo = novoNo;
novoNo.anterior = auxiliar;
}
}
}
public void Imprime()
{
NoLista auxiliar = InicioLista;
Console.WriteLine("Imprimindo a lista");
// Percorrer a lista até o fim
while (auxiliar != null)
{
// Imprimir o valor
Console.WriteLine(auxiliar.informacao);
// Navegar para o próximo nó
auxiliar = auxiliar.proximo;
}
}
}
The class representing the nodes on this list (NoLista
)
namespace ListaLib
{
public class NoLista
{
/// <summary>
/// Aramazena a informação
/// </summary>
public int informacao { get; set; }
/// <summary>
/// Referência para o próximo nó (elemento) na lista
/// </summary>
public NoLista proximo { get; set; }
/// <summary>
/// Referência para o nó (elemento) anterior na lista
/// </summary>
public NoLista anterior { get; set; }
/// <summary>
/// Construtora da classe NoLista
/// </summary>
public NoLista()
{
informacao = -1;
proximo = null;
anterior = null;
}
}
}
What would be "List"?
– Francisco
Your examples this obscure, you are treating your vestments as objects and talking in lists ... could explain better ?
– Marco Souza
@Marconciliosouza is a list that he himself implemented, very likely.
– Jéf Bueno
@LINQ that same friend, you understood me. However not being able to concatenate, has any solution for me?
– user89590
@user89590 I don’t know what you mean by concatenate, actually, I didn’t understand any of your question. If you [Dit] and make your problem clear, I’m sure I can help you, without it I can’t.
– Jéf Bueno
@user89590 Now I get the idea. It has how to [Edit] and put the structure of your list?
– Jéf Bueno
@LINQ Done look there
– user89590
@user89590 And the class noList, please
– Jéf Bueno