Pular para o conteúdo principal

LISTA CIRCULAR DUPLAMENTE ENCADEADA - EXERCÍCIO RESOLVIDO

/*Lista Circular Duplamente Encadeada*/
#include <iostream>
#include <malloc.h>

using namespace std;

typedef char TInfo;
typedef struct no {
no *esq;
TInfo info;
no *dir;
} TNo;
typedef TNo *PNo;

void criaListaC(PNo *l) 
{
*l = NULL;
}
void insereListaC(PNo *l, TInfo dado) 
{
PNo p;
p = (PNo)malloc(sizeof(TNo));
p->info = dado;
if (*l) {
p->dir = *l;
p->esq = (*l)->esq;
(*l)->esq->dir = p;
(*l)->esq = p;
} else {
p->dir = p;
p->esq = p;
}
*l = p;
}

int eliminaListaC(PNo *l, TInfo *dado) 
{
PNo p;
    if (*l)
    {
        p = *l;
        if (p->dir == p)
        {
            *l = NULL;
        }
        else
        {
            (*l)->dir->esq = p->esq;
            (*l)->esq->dir = p->dir;
            *l = p->dir;
           
        }
    *dado = p->info;
    free(p);
    return 1;
    }
    else
    {
   
        return 0;
    }
}

void mostraListaCDir(PNo l) 
{
PNo p;
cout << "Lista -> :";
if (l) {
p = l;
do {
cout << " " << p->info;
p = p->dir;
} while (p != l);
}
}
void mostraListaCEsq(PNo l) 
{
PNo p;
cout << "Lista <- :";
if (l) {
p = l;
do {
cout << " " << p->info;
p = p->esq;
} while (p != l);
}
}
void mostraListaC(PNo l) 
{
mostraListaCDir(l);
cout << endl;
mostraListaCEsq(l);
}
void terminaListaC(PNo *l) 
{
TInfo v;
while (eliminaListaC(l, &v));
}

int main() 
{
PNo lista;
TInfo valor;
cout << endl << "Criando Lista...";
criaListaC(&lista);
cout << endl << "Criada!" << endl;
cout << endl << "Inserindo Lista...";
insereListaC(&lista, 'D');
insereListaC(&lista, 'C');
insereListaC(&lista, 'B');
insereListaC(&lista, 'A');
cout << endl << "Inserido!" << endl;
cout << endl << "Mostrando Lista..." << endl;
mostraListaC(lista);
cout << endl << "Mostrado!" << endl;
cout << endl << "Excluindo Lista..." << endl;
if (eliminaListaC(&lista, &valor)) {
cout << "Valor: " << valor;
} else {
cout << "Lista Vazia!";
}
cout << endl << "Excluido!" << endl;
cout << endl << "Mostrando Lista..." << endl;
mostraListaC(lista);
cout << endl << "Mostrado!" << endl;
cout << endl << "Terminando Lista...";
terminaListaC(&lista);
cout << endl << "Terminado!" << endl;
cout << endl << "Mostrando Lista..." << endl;
mostraListaC(lista);
cout << endl << "Mostrado!" << endl;
cout << endl << "*****" << endl;
return 0;
}

Código-fonte executado com sucesso no compilador Dev-C++

Comentários

Postagens mais visitadas deste blog

Exercícios resolvidos em Linguagem Python - para iniciantes

Esta lista de exercícios resolvidos é um manual para ajudar todo aluno iniciante e não só, a adquirir e aprimorar as habilidades necessárias para se trabalhar com Python, de forma rápida e consistente. Estude e desfrute do conteúdo. 1º Exercício      Faça um programa que informe a versão do Python que você está utilizando Solução import sys print ( "Versão do Python" ) print (sys.version) print ( "Informação da versão instalada" ) print (sys.version_info) Atenção :     -  O módulo sys fornece funções e variáveis usadas para manipular diferentes partes do ambiente de tempo de execução do Python;     - Pra quem ainda não está familiarizado com a linguagem, um módulo  é um arquivo contendo definições e comandos em Python para serem usados em outros programas. 2º Exercício      Faça um programa em linguagem Python que converta metros para centímetros. Solução print ( ' \t ----Conversão de medida---- ' ) metros = int ( in...

Como abrir uma página da web utilizando Python?

Simples, você pode abrir páginas da Web de forma rápida, segura e fácil. Veja só, durante os estudos das bibliotecas padrão do Python descobri que para abrir um navegador web a partir de um script, devo importar o módulo webbrowser. Em seguida, usar webbrowser.open () que vai receber o link que quero abrir como argumento e executar o serviço, ou seja, basta inserir um endereço do youtube nele, na verdade pode ser qualquer link que você desejar. Exemplo webbrowser.open( "https://www.huicode.com.br/p/exercicios-resolvidos-de-linguagem-c.html" ) Para funcionar temos que importar o módulo webbrowser, que vai ser a maneira de dizer ao python que queremos usar webbrowser e todas as suas funcionalidades no programa. import webbrowser webbrowser.open( "https://www.huicode.com.br/p/exercicios-resolvidos-de-linguagem-c.html" ) Funcionooou, uhuhu. Nem parece, mas o módulo webbrowser é um módulo muito empregado em projetos de sites de filmes. Tem muitas utilidades, acredite.

Lista de exercícios resolvidos de Linguagem Python

  Neste artigo, temos diversos exercícios básicos, exercícios utilizando   if - else , exercícios utilizando o   for  e   while  e exercícios utilizando as funções   lambda  e   map . Parte I - Exercícios básicos  (Estruturas sequenciais) Exercício 01 Desenvolva um programa que peça dois números e imprima a soma. Solução #criar as variáveis que vão receber a entrada dos números num1 = int ( input ( "Digite o 1º numero: " )) num2 = int ( input ( "Digite o 2º numero: " )) #calcular a soma soma = num1 + num2 # Mostrar o resultado na tela print ( f "A soma entre { num1 } e { num2 } é = { soma } " ) Ao executar o script , teremos como saída: Exercício 02 Faça um programa que converta metros para centímetros. Solução Um metro corresponde a 100 centímetros. Portanto: #criar a variável que vai receber a entrada do valor metros = float ( input ( "Digite o valor em metros: " )) #calculando a medida centimetros = metros * 100 # Most...