Quick actions

cmd+k|ctrl+k

Navigation

Languages

duplamente encadeada

Snippet info

Language

C

Visibility

public

Author

rodrigogons

Created

2017-04-26T23:25:03Z

Updated

2017-04-27T01:03:31Z

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

typedef struct estru
{
    int num;
    struct estru *prev;
    struct estru *next;
} lista;

int mostraListainvert(lista *p, lista *begin)
{
    while(p != begin)
	{
		printf(" %d ->", p->num);
		p = p->prev;
	}
	
	printf(" %d ->fim da lista\n\n", p->num);
}

void mostraLista(lista *begin)
{
    lista *p = begin;
	printf("\n\n");
    p = begin;
	while(p->next != begin)
	{
		printf(" %d ->", p->num);
		p = p->next;
	}
	
	printf(" %d ->fim da lista\n\n", p->num);
}

int main(void)
{
    lista *p, *q, *begin=NULL, *begin2=NULL;
    int num, rem;
    
    scanf("%d", &num);
    printf("Tamanho da lista: %d", num);
    
    for(int i = 1; i <= num; i++)
    {
        p = (lista *) malloc(sizeof(lista));
         scanf("%d", &p->num);
        if(begin==NULL) 
        {
            begin = p;
            p->prev = p;
            p->next = p;
        }
        else 
        {
	        p->prev = q;
	        p->next = begin;
	        begin->prev = p;
	        q->next = p;
        }
        
        q = p;
        printf("\nNó %d: %d", i, p->num);
    }
    
    
    mostraLista(begin);
    
    scanf("%d", &rem);
    printf("Nó a ser deletado: %d", rem);
    
    p = begin;
    for(int i = 1; i <= num; i++)
    {
        p = p->next;
        if(i == rem)
        {
            
        }
    }
    
    free(p);
    return 0;
}
INFO