Pular para o conteúdo principal

LISTA CIRCULAR SIMPLESMENTE ENCADEADA

/*Lista Circular Simplesmente Encadeada - código-fonte para sua manipulação */

#include <iostream>
#include <malloc.h>

using namespace std;

typedef char TInfo;
typedef struct no {
TInfo info;
no *prox;
} TNo;
typedef TNo *PNo;
void criaListaC(PNo *l) {
*l = NULL;
}

void insereListaC(PNo *l, TInfo dado) 
{
PNo p, q;
p = (PNo)malloc(sizeof(TNo));
p->info = dado;
if (*l) 
{
 p->prox = *l;
q = *l;
while (q->prox != *l) {
q = q->prox;
}
q->prox = p;
} else {
p->prox = p;
}
*l = p;
}

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

int contaNosListaC(PNo l)
{
PNo p;
int n = 0;
if (l) {
p = l;
do {
n++;
p = p->prox;
} while (p != l);
}
return n;
}

void mostraListaC(PNo l) 
{
PNo p;
cout << "Lista (" << contaNosListaC(l) << "):";
if (l) {
p = l;
do {
cout << " " << p->info;
p = p->prox;
} while (p != 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 << "Criado!" << endl;
cout << endl << "Inserindo Lista...";
insereListaC(&lista, 'A');
insereListaC(&lista, 'B');
insereListaC(&lista, 'C');
insereListaC(&lista, 'D');
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 executando 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...