Lista encadeada

653 palavras 3 páginas
#include
#include

typedef struct no{ int info; struct no *next;
}No, *Nodeptr;

void imprimir_No(No); int inserirNo(No *, int); void inicializar_lista(No **); void inserir_lista(No **, int); void desalocar_lista(No **); void imprimir_lista(No *); int deleteNode(No *,int); void freememory(No *); void OrdenacaoBubble(No *); void Troca(int *,int *); void separa (No *, int );

void inicializar_lista(Nodeptr *p)
{
*p= NULL;
}

int inserirNo(Nodeptr *header, int x)
{
Nodeptr newNo, prevNo, currentNo; newNo = (Nodeptr)malloc(sizeof(No)); // tenta alocar memoria if (newNo == NULL) return 0; // nao conseguiu alocar newNo->info = x; newNo->next = NULL; prevNo = NULL; // ponteiros auxiliares currentNo = *header; // ponteiros auxiliares

if(currentNo == NULL) // insercao do primeiro elemento *header = newNo; else { while(currentNo!=NULL) // posiciona currentNo adequadamente { prevNo = currentNo; currentNo = currentNo-> next; } if (prevNo == NULL) // insercao antes do primeiro { newNo->next = *header; *header = newNo; } else // insercao no meio { prevNo->next=newNo; newNo->next = currentNo; } } return 1;
}

int deleteNode(Nodeptr *header, int x)
{
Nodeptr prevNo, currentNo, temp; if(*header!=NULL) { if(x ==(*header)->info) // remocao do primeiro { temp = *header; *header=(*header)->next; free(temp); } else { prevNo = *header; currentNo = (*header)->next;

Relacionados

  • Listas encadeadas
    544 palavras | 3 páginas
  • Lista Encadeada
    291 palavras | 2 páginas
  • Listas encadeadas
    509 palavras | 3 páginas
  • LISTA ENCADEADA
    290 palavras | 2 páginas
  • listas encadeadas
    793 palavras | 4 páginas
  • lista encadeada
    1592 palavras | 7 páginas
  • Lista encadeada
    2771 palavras | 12 páginas
  • Listas Encadeadas
    549 palavras | 3 páginas
  • Lista encadeada
    1159 palavras | 5 páginas
  • lista encadeada
    430 palavras | 2 páginas