TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Lista Encadeada Ordenada

Trabalho Escolar: Lista Encadeada Ordenada. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  24/5/2014  •  639 Palavras (3 Páginas)  •  573 Visualizações

Página 1 de 3

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

#include<locale.h>

typedef struct Temp

{

int ra; // Vari·vel que receber· a informaÁ„o

char nome[20];

int v[4];

float md;

struct Temp *proximo;

//ponteiro para o prÛximo elemento da lista

}TNODO;

// Cria O inicio da lista

TNODO *inicio; //ponteiro para o inicio da lista

TNODO *fim; // ponteiro para o fim da lista

//-----------------------------------------------------------------------------------------------------------------------------------------------------------

// FunÁ„o que define a lista como vazia

void CriaLista()

{

inicio = NULL;

fim = NULL;

}

//-----------------------------------------------------------------------------------------------------------------------------------------------------------

//FunÁ„o que insere um elemento do inicio da lista

TNODO *CriaAluno()

{

int i;

TNODO *p;

p =(TNODO *)malloc(sizeof(TNODO)); // aloca memÛria e atribui ao ponteiro p

if(p == NULL)

{

printf(" \nErro de alocaÁ„o \n");

}

printf("\n Informe RA :");

scanf(" %d", &p->ra);

printf("\n Nome:");

fflush(stdin);

gets(p->nome);

for(i=0;i<4;i++)

{

printf("%d, nota :",i+1);

scanf("%d",&p->v[i]);

p->md=(p->md + p->v[i]);

}

p->md=(p->md)/4;

p->proximo = NULL;

return p;

}

//-----------------------------------------------------------------------------------------------------------------------------------------------------------

void inserir()

{

TNODO *novoAluno;

novoAluno = CriaAluno();

if(inicio ==NULL) // insere no inicio caso a lista esteja vazia

{

inicio =novoAluno; // ponteiro Ìnicio aponnta para novo elemento

fim = novoAluno; //ponteiro fim tambÈm aponta para o novo elemento

}

else // insere no fim, caso a lista j· possua elementos

{

fim->proximo = novoAluno; // ponteiro prÛximo , do ˙ltimo elemento , aponta para o novo.

fim = fim->proximo ; // desloca ponteiro fim para o elemento seguinte

}

}

//-----------------------------------------------------------------------------------------------------------------------------------------------------------

// funÁ„o que imprime toda a lista .

void listar ()

{

int i;

TNODO *p;

if(inicio == NULL)

{

printf("\n\n--- fim da lista --- \n\n\n");

}

// caso a lista n„o esteja vazia

p = inicio;

while(p!= NULL)

{

printf("\n RA = %d ",p->ra);

printf("\n Nome = %s",p->nome);

printf("\n\n ---- NOTAS-----\n");

for(i=0;i<4; i++)

{

printf("\n %d, nota = %d ",i+1, p->v[i]);

}

printf(" \n Media = %.1f",p->md);

printf("\n\n");

p =p->proximo;

}

printf("\n\n--- fim da lista ---\n\n");

}

//-----------------------------------------------------------------------------------------------------------------------------------------------------------

//

...

Baixar como (para membros premium)  txt (8.9 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com