Implementação da lista duplamente vinculada C ++

Implementação da lista duplamente vinculada C ++
Uma lista duplamente vinculada é o conceito estrutural em C ++ que consiste em 1 ou mais nós. Um único nó deve ter três partes i.e., dados, uma referência para o nó anterior e o próximo nó próximo. Diz -se que o primeiro nó é o nó "cabeça" usado para acessar a lista geral vinculada. O último nó de uma lista vinculada sempre tem o valor nulo. Se você é novo nesse conceito e procurando recursos autênticos para obter conhecimento, então este guia é para você.

Vamos começar este artigo com a nova criação de arquivos C ++. Temos que criá -lo usando a consulta "Touch" do terminal. Após a criação de arquivos, nossa próxima tarefa é abri -la e criar algum código C ++. Para a abertura, você pode usar qualquer editor interno do Ubuntu 20.04 Como um editor de texto, editor Vim ou editor da GNU Nano. Então, estamos usando a instrução "nano" em nossa concha para abrir o duplamente.arquivo cc nele.

Exemplo 01:

Vamos fazer um exemplo básico de código C ++ para criar uma lista de ligações duplas. Após a abertura do arquivo, adicionamos o iostream. O espaço para nome padrão C ++ será utilizado. Depois disso, estamos criando uma estrutura de nós chamada "nó" com alguns de seus elementos. Ele contém a variável inteira "D" como a parte dos dados. Em seguida, definimos três novas estruturas de nós. O nó "p" está mostrando o nó anterior, "n" está mostrando o próximo nó, e o nó da cabeça "h" é especificado como outro nó.

Agora, a estrutura acima não usa utilidade até adicionar e mostrar alguns nós no código do programa. Estamos usando a função add () para obter os dados do nó da função principal (). Em sua primeira linha, estamos criando um novo nó "novo nó" usando a estrutura "nó" e atribuindo uma memória que é igual ao tamanho de um "nó". Os caracteres de sinal “->” são usados ​​para referência às partes do nó I.e., Em seguida, anterior, dados, etc. Assim, estamos referenciando os dados de um novo nó usando -> cantar e adicionar dados passados ​​pela função principal () no parâmetro "ND" na variável "d" de um novo nó. O nó anterior de um novo nó será inicializado para NULL e seu próximo nó será uma "cabeça". A declaração "se" está aqui para verificar se o valor da cabeça "h" não é igual a nulo. Se o valor de "H" não for nulo, ele fará com que o nó anterior de um nó "cabeça", um novo nó. Além disso, a cabeça também será um novo nó.e., tendo um valor de um novo nó.

Aqui vem a função "show ()" para exibir o nó criado. Dentro dele, criamos um nó "PTR" e o tornamos uma "cabeça". O loop "while" está aqui para confirmar que o valor de "PTR" não é nulo. Embora a condição seja satisfeita, a declaração cout exibirá os dados adicionados por um usuário da mesma forma, mas oposto. Agora, o próximo dos nós "PTR" se tornará "PTR".

Aqui está a nossa função principal () de onde a execução começa. Chamamos a função "Add" 4 vezes para criar um novo nó e adicionar dados à variável "d" de um novo. A declaração cout está nos mostrando que chamaremos a função "show" para exibir todos os nós que adicionamos.

Agora, é hora de compilar esse código C ++ no compilador G ++ do Ubuntu para a linguagem C ++. Ao executar o código com “./a.fora ”, fomos exibidos com os 4 dados de dados em ordem oposta i.e., Adicionamos em 4, 12, 2, 7 Ordem e ele retorna em 7, 2, 12, 4, mostrando o último pedido de primeiro lugar em primeiro lugar.

Exemplo 02:

Vejamos outro exemplo de uma lista duplamente ligada. Criou uma estrutura "nó" com a mesma variável "D", Nó Próximo "N" e Nó anterior "P".

Agora, estamos utilizando a função FrontPush () para inserir um nó no início com seus dados i.e. Nó da cabeça. Nós criamos um novo nó dentro dele eu.e. “NEWNODE” usando a estrutura “nó*” sintaxe. Depois disso, estamos referenciando seus dados "D", seu próximo nó que será uma "cabeça" e o nó anterior que será nulo. A declaração “se 'foi usada para verificar se o valor da cabeça não é nulo. Se a cabeça já não estiver "nula", temos que fazer da cabeça anterior um novo nó, e o cabeçalho apontará para o novo nó.

A função Afterpush () está aqui para inserir um novo nó após o nosso nó já feito. A declaração "se" verificará se o nó anterior é igual a nulo ou não e exibirá isso usando o "cout". Um novo nó foi formado e os dados serão inseridos em "D". O "próximo" do novo se tornará o próximo do anterior, e o próximo do anterior se tornará um novo nó. O anterior de novo se tornará o próprio anterior. Se o próximo de novo não for igual a nulo, faremos o próximo do novo que também é o próximo do novo, um novo nó.

Agora, usaremos a função "endpush" para inserir um novo nó no final de uma lista vinculada. O novo nó foi criado e os dados passados ​​por main () são atribuídos a "d" e o próximo de novo é nulo. Estamos armazenando a cabeça temporariamente. O "se" verificará se a lista vinculada está vazia e tornará o novo nó "cabeça". O "whin while" atravessará a lista vinculada se a lista vinculada já não estiver vazia. Como o "temp" é o nosso último nó, atribuímos a próxima temperatura para "novo". O anterior de novo é designado para "temp".

O método Delete () está usando diferentes declarações "se" para trocar o próximo e anterior do nó Del, e o nó da cabeça. Em última, a função "livre" é usada para liberar a memória de um nó Del.

A função show () deste programa é novamente usada para imprimir a lista duplamente vinculada.

A função Main () começa a executar, inicializando o nó da cabeça para NULL. A função "endpush" é chamada para inserir um nó no final, passando "cabeça" e 5 como dados. FrontPush () é usado duas vezes para adicionar um nó na frente da lista vinculada. Após o uso "endpush ()", usamos "Afterpush ()" duas vezes. As funções Show () e "Delete ()" são usadas uma após a outra, enquanto o "Excluir" é usado para excluir todos os últimos nó da lista vinculada, e Show () está exibindo que.

A compilação e a execução estão mostrando o início da lista vinculada i.e., Após cada exclusão de nó.

Conclusão

Este artigo está explicando os exemplos de código simples para criar uma lista duplamente vinculada em C ++ enquanto estiver usando o Ubuntu 20.04 Sistema Linux. Também demos uma olhada nas maneiras de inserir um nó no início e no final da lista vinculada e inserir após um nó já feito.e., entre. A função de exclusão estava excluindo cada nó todas as vezes da lista vinculada.