giiff / livro_algoritmos_e_estruturas_de_dados

Livro Algoritmos e Estruturas de Dados para Tecnólogos
Creative Commons Attribution Share Alike 4.0 International
13 stars 0 forks source link

Parte 2, Exe 01 - Imprimir lista encadeada simples; #14

Closed waldeyr closed 4 years ago

MatheusMagga commented 4 years ago

//Matheus de Almeida Magalhães
#include <stdio.h>
#include <stdlib.h>

typedef struct No
{
    int dado;
    struct No *prox;
} No;

No *cabeca = NULL;

void inserirNaLista(int dado)
{
    No *no = (No *)malloc(sizeof(no));
    no->dado = dado;
    no->prox = NULL;
    if (cabeca == NULL)
    {
        cabeca = no;
    }
    else
    {
        no->prox = cabeca;
        cabeca = no;
    }
}

void imprimirLista()
{
    if (cabeca == NULL)
    {
        printf("Lista vazia.\n");
        return;
    }
    No *no = cabeca;
    while (no != NULL)
    {
        printf("[%d(%p)|%p]\n", no->dado, no, no->prox);
        no = no->prox;
    }
    return;
}

void main()
{
    for (int i = 1; i <= 50; i++)
        inserirNaLista(i);
    imprimirLista();
}
Samuel-Amaro commented 4 years ago

//Samuel Amaro do Nascimento!
#include <stdio.h>
#include <stdlib.h>

typedef struct No {
int dado;
struct No* prox;
}No;

//vai ser o controlador da lista sempre vai ter a referncia do ultimo no criado
No* ReferenciaUltimoNo = NULL;

//metodo que insere um novo no
void inserirDado(int dado);
void inserirDado(int dado) {
 //cria um novo no e aloca ele logo em seguida
 No* novoNo = (No*)malloc(sizeof(No));
 //fazedo verificações para 2 situações
 //1 - se não existir nenhum no na lista a lista esta vazia eu faço a inserção de um novo
 //no que vai ser o cabeça e o ultimo da lista
 novoNo->dado = dado;

 if(ReferenciaUltimoNo == NULL) {
    ReferenciaUltimoNo = novoNo;
    ReferenciaUltimoNo->prox = NULL;
 } else {
      //se ja existir algum no na lista, independente de quantos
        //eu faço a inserção de um novo no na lista e faço a linkedição e atualizo para um novo no o ultimo ser
        //a cabeça da lista
      //a cada novo no adicionado eu faço ele apontar para o ultimo criado antes dele
      novoNo->prox = ReferenciaUltimoNo;
      //atualiza a referencia de utimo
      ReferenciaUltimoNo = novoNo;
 }

}

//metodo imprime lista
void imprimeLista();
void imprimeLista() {
 No* percorreLista = ReferenciaUltimoNo;
 if(ReferenciaUltimoNo == NULL) {
    printf("Lista Vazia Sem Nenhum No!");
 }
 else {
       while(percorreLista != NULL) {
             printf("[Endereço do No Atual = %p|Dado = %d|Seu Proximo = %p]\n",percorreLista,percorreLista->dado,percorreLista->prox);
             percorreLista = percorreLista->prox;
       }
 }

}

void main(void) {
 for(int indice = 0; indice < 5; indice += 1) {
     inserirDado(indice);
 }
 imprimeLista();
}
1234567890asdf commented 4 years ago

//Cristiano Gomes Machado

`#include

include

include

typedef struct No{ int a; struct No prox; } No; No cabeca = NULL;

void inserir(int a); // a corresponde a um dado void inserir(int a){ No no = (No ) malloc (sizeof(No)); no->a = a; no->prox = NULL; if(cabeca == NULL){ cabeca = no; cabeca->prox = NULL; } else { no->prox = cabeca; cabeca = no; } } void imprimirLista(); void imprimirLista(){ No* aux = cabeca; if(cabeca == NULL) { printf("Lista Vazia, nao contem nenhum No!"); } else { while(aux != NULL) { // AUX Percorre a lista printf("[Endereço do No Atual = %p| ### a = %d|Seu Proximo = %p]\n",aux,aux->a,aux->prox); aux = aux->prox; } } } void main(void){ for(int indice = 0; indice < 5; indice += 1) { inserir(indice); } imprimirLista();

} `

jvitor7085 commented 4 years ago

Jose vitor

#include <stdio.h>
#include <stdlib.h>
#define TAM 10
typedef struct No{
    int dado;
    struct No* prox;
}No;
No* cabeca=NULL;
void inserir(int dado){
    No *no=(No*)malloc(sizeof(No));
    no->dado = dado;
    no->prox=NULL;

    if (cabeca == NULL){
        cabeca = no;
    }
    else{
    no ->prox=cabeca;
    cabeca = no;
    }
}
void imprimir(){
if (cabeca==NULL){
    printf("\nlista vazia"); return;
}else{
    No* no=cabeca;
    while(no!=NULL){
    printf("%d[%p]->%p\n",no->dado,no,no->prox);
    no=no->prox;
    }
}
}
void main(){
    for(int dado=0;dado<TAM;dado++)
inserir(dado);
imprimir();
}
heloinafsa commented 4 years ago

include

include

typedef struct No{ int a; strutc No* prox; }No;

No* cabeca = NULL;

void inserir(int a){
No* no = (No *) malloc(sizeof(No));
no->a = a;
no->prox = NULL;
if(cabeca = NULL){
    cabeca = no;
}
else{
    cabeca->prox = no;
    cabeca = no;
}
}

void remover(int a){
No* no = (No *) malloc(sizeof(No));
no->a = a;
no->prox = NULL;
if(cabeca = NULL){
    cabeca = no;
}
while (no != NULL) {
No* no = (No *) malloc(sizeof(No));

}

void imprimirNo(){
while( no != NULL){
printf("[%d(%p)|%p]\n", no->dado, no, no->prox);
no = no->prox;
}
return;
}
No *no = cabeca;
else(cabeca == NULL){
    printf("Lista vazia!\n");
    return;
}
}

void main(){ for(int i = 1; i <= 10; i++) inserir(i); imprimirNo(); }

arthurjf commented 4 years ago

Aluno: Arthur José Fernandes

#include <stdio.h>
#include <stdlib.h>

typedef struct No {
    struct No *prox;
    int dado;
} No;

No *cabeca;

void adicionarDado(int dado) {
    No* no;
    no = (No *) malloc(sizeof (no));
    if (cabeca != NULL) {
        no->prox = cabeca;
    }
    cabeca = no;
    no->dado = dado;
}

void imprimirLista() {
    if (cabeca == NULL) {
        printf("\nLista vazia...\n\n");
    } else {
        No *no;
        no = cabeca;
        while (no != NULL) {
            printf("\nende = %p\tdado = %d\tprox %p\n", no, no->dado, no->prox);
            no = no->prox;
        }
    }
    printf("\n");
}

void main() {
    for (int i = 1; i <= 10; i++) {
        adicionarDado(i);
    }
    imprimirLista();
}
Vanderson11 commented 4 years ago

include

include

typedef struct No{

int dado;
struct No *prox;

}No;

No *cabeca = NULL;

void inserir(int dado){

No *no = (No *) malloc(sizeof(no));
no-> dado = dado;
if(cabeca == NULL){
    cabeca = no;
    no->prox = NULL;

}else{
    cabeca->prox = no;
    cabeca = no;
}

}

void imprimir(){

if(cabeca == NULL){
   printf("Lista vazia.\n");
   return;  
}
No *no = cabeca;
while(no != NULL){
    printf("[d_%d/n_%p /p_%p]\t", no->dado, no, no->prox);
    no = no->prox;
}
printf("\n");
return;

}

void main(){

for(int i=0; i<5; i++){
    inserir(i);
}
imprimir();

}

ghost commented 4 years ago

Created by Guilherme Henrique L. de A. Saraiva.

Institute Federal of Goiás - TADS Data Structure with Mr. Waldeyr Mendes...

#include <stdio.h>
#include <stdlib.h>
//Create linked list struct.
struct LinkedList {
    struct LinkedList *nextNeighbor;
    int item;
};
//Not to forget typedef syntax.
typedef struct LinkedList Bloc; 
//Functions prototypes.
void Create(Bloc **, int);
void Read(Bloc *);
void Delete(Bloc **, int);
//General functions.

//Linked list functions.
void Create(Bloc **headNeighbor, int item){
    Bloc *newNeighbor = (Bloc*) malloc(sizeof(Bloc));
    newNeighbor->item = item;
    newNeighbor->nextNeighbor = (*headNeighbor);
    (*headNeighbor) = newNeighbor;
}
void Read(Bloc *headNeighbor){
    while (headNeighbor != NULL)
    {
        printf("%p|%d|%p\n", headNeighbor, headNeighbor->item, headNeighbor->nextNeighbor);
        headNeighbor = headNeighbor->nextNeighbor;
    }    
}

void Delete(Bloc **headNeighbor, int item){
    if (*headNeighbor == NULL)
        return;
    Bloc *temp = *headNeighbor;
    if (item == 0){
        *headNeighbor = temp->nextNeighbor;
        free(temp);
        return;
    }
    for (int i = 0; temp != NULL && i < item-1; i++) 
        temp = temp->nextNeighbor;
    if (temp == NULL || temp->nextNeighbor == NULL) 
        return;
    Bloc *next= temp->nextNeighbor->nextNeighbor; 
    free(temp->nextNeighbor);
    temp->nextNeighbor = next;
}

int main(void){
    Bloc *headNeighbor = NULL;
    for (int i = 1; i <= 10; i++)
        Create(&headNeighbor, i);
    Read(headNeighbor);
    puts("\n");
    Delete(&headNeighbor, 5);
    Read(headNeighbor);  
    return 0;
}
Tainara-Ataides commented 4 years ago

Tainara Moura De Ataídes

include

include

void main() {

typedef struct No {
    int a;
    struct No* prox;

} No;

No* cabeca = NULL;//declarando lista vazia// criou uma lista chamada de cabeca que recebe null

void inserir(int a){
    No* no= (No *) malloc(sizeof(No));
    no->a =a;
    no->prox = NULL;
    if(cabeca==NULL){//lista vazia
        cabeca=no;//aponta para no
    }else{//caso a lista nao esteja vazia
       cabeca->prox= no;//campo proximo apontar para aonde a lista estava apontando
       cabeca=no; 
    }
}
void imprimir(No* cabeca){
    No* no;
    if(cabeca==NULL){
        printf("lista vazia!");
    }
    no = cabeca;
    while(no != NULL){
        if(no->prox !=NULL){
        }else{
            no=no->prox;

        }

    }

}
void main(){
    for(int i=1; int i<=10; int i++){
        inserir(i);
        printf("[%d(%p)->%p]\n ", cabeca->a, cabeca, cabeca->prox);

    }
}

}

gearle01 commented 4 years ago

Gearle Soares `#include

include

typedef struct No{ int dado; struct No prox; } No; No cabeca = NULL;

void inserir(int dado){

No no = (No ) malloc(sizeof(no)); no-> dado = dado; if(cabeca == NULL){ cabeca = no; no->prox = NULL;

}else{ cabeca->prox = no; cabeca = no; } }

void imprimir(){

if(cabeca == NULL){ printf("Lista vazia.\n"); return;
} No *no = cabeca; while(no != NULL){ printf("[ant %d/end %p /prox %p]\t", no->dado, no, no->prox); no = no->prox; } printf("\n"); return; }

void main(){

for(int i=0; i<5; i++){ inserir(i); } imprimir(); }`

gustavohgarcez commented 4 years ago

Gustavo Henrique Garcez Andrade

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// Define o tipo No contendo
typedef struct No{
    struct No *ante;
    struct No *prox;
    int dado;
} No;

//Define o ultimo No da lista
No* cabeca = NULL;

//Funcao que adiciona dados
void inserir(int dado) {
    No* no = (No *) malloc(sizeof (no));
    no->dado = dado;
    if (cabeca == NULL){//lista vazia
        cabeca = no;
        no->ante = NULL;
        no->prox = NULL;        
    }
    else {
        no->ante = cabeca;
        cabeca->prox = no;
        no->prox = NULL;
        cabeca = no;
    }
}

//Funcao que imprime a lista
void imprimirLista() {
    if (cabeca == NULL) {
        printf("Lista vazia.\n");
        return;
    }
    No* no = cabeca;
    while (no != NULL) {
        printf("[a_%p|%d(%p)|p_%p]\t", no->prox, no->dado, no, no->ante);
        no = no->ante;
    }
    printf("\n");return;
}

void buscarDado(int dado){
    No* no;
    if (cabeca == NULL) {
        printf("Lista vazia.\n");
        return;
    }
    no = cabeca;
    while (no != NULL) {
        if (no->dado == dado)
            printf("[%d(%p)]\n", no->dado, no);
        no = no->ante;
    }
}

void removerDado(int dado) {
    No *no, *anterior;
    if (cabeca == NULL) {// lista vazia
        return; 
    } else { // lista NAO vazia
        no = cabeca;
        anterior = cabeca;
        while (no != NULL) {
            if (no->dado == dado){
                if (no == cabeca){// removendo o primeiro
                    cabeca = cabeca->ante;
                    free(no);// libera memoria
                    return;
                } 
                else{ // removendo do meio
                    anterior->ante = no->ante;
                    free(no);// libera memoria
                    return;
                }
            } 
            else{ // continua procurando na lista
                anterior = no;
                no = no->ante;
            }
        }
        return;
    }
}

void main() {
    // Insere na lista os numeros de 1 a 3
    for (int i = 1; i <= 3; i++)
        inserir(i);
    printf("Imprime Lista:\n");
    imprimirLista();
    printf("\nBusca Dado:\n");
    buscarDado(3);
    printf("\nRemove Dado: (2)\n");
    removerDado(2);
    printf("\nImprime lista Novamente:\n");
    imprimirLista();
}
dyegolv commented 4 years ago

Dyego Rodrigues F. de Lima

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// Define o tipo No contendo
typedef struct No{
    struct No *proximo;
    struct No *anterior;
    int dado;
} No;

//Define o ultimo No da lista
No* cabeca = NULL;

//Funcao que adiciona dados
void inserir(int dado) {
    No* no = (No *) malloc(sizeof (no));
    no->dado = dado;
    if (cabeca == NULL){//lista vazia
        cabeca = no;
        no->proximo = NULL;
        no->anterior = NULL;        
    }
    else {
        no->proximo = cabeca;
        cabeca->anterior = no;
        no->anterior = NULL;
        cabeca = no;
    }
}

//Funcao que imprime a lista
void imprimirLista() {
    if (cabeca == NULL) {
        printf("Lista vazia.\n");
        return;
    }
    No* no = cabeca;
    while (no != NULL) {
        printf("|%p|%d(%p)|%p|\n", no->anterior, no->dado, no, no->proximo);
        no = no->proximo;
    }
    printf("\n");return;
}

int main() {
    // Insere na lista os numeros de 1 a 3
    for (int i = 1; i <= 5; i++)
        inserir(i);
    imprimirLista();
    return 0;
}
Judy-Ellen commented 4 years ago

Judy Ellen Vera Martins 20171070130234

include

include

typedef struct No{ int a; struct No* prox; }No;

No* inicio = NULL;

void inserir(int a){ No no = (No ) malloc(sizeof(No)); no->a = a; no->prox = NULL; if(inicio = NULL){ inicio = no; } else{ inicio->prox = no; inicio = no; } }

void remover(int a){ No no = (No ) malloc(sizeof(No)); no->a = a; no->prox = NULL; if(inicio = NULL){ inicio = no; } while (no != NULL) { No no = (No ) malloc(sizeof(No));

}

void imprimirNo(){ while( no != NULL){ printf("[%d(%p)|%p]\n", no->dado, no, no->prox); no = no->prox; } return; } No *no = inicio; if (inicio == NULL){ printf("Lista vazia!\n"); return; } } void main(){ for(int i = 1; i <= 10; i++) inserir(i); imprimirNo(); }