Lista Encadeada Ordenada
Trabalho Escolar: Lista Encadeada Ordenada. Pesquise 862.000+ trabalhos acadêmicosPor: dimsol101 • 24/5/2014 • 639 Palavras (3 Páginas) • 573 Visualizações
#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");
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------
//
...