Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Lista encadeada com header


Pajé

Pergunta

Bom dia pessoal,

Estou tendo uma grande dificuldade de fazer um trabalho com lista encadeada com header.

Com um elemento na struct eu faço tranquilo, porém preciso ter 4 q são codigo, nome do aluno, nota g1 e nota g2.

A duvida é...após declarar as 4 variaveis na struct(no inicio do programa)....preciso relacionar os seus nomes lá no main e na função void?

Selecionei em negrito onde acho q estou errando.

Por favor, me ajudem....muito obrigado.

Olhem o código q estou fazendo:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

struct nodo {

int codigo;

char aluno[50];

int g1;

int g2;

struct nodo *proximo;

};

struct header {

struct nodo *inicio;

int qtde;

struct nodo *fim;

};

void cria_header (struct header **lista, int *status)

{

struct header *l = NULL;

l = (struct header *) malloc(sizeof(struct header));

if (l == NULL)

*status = 0;

else {

l->inicio = NULL;

l->qtde = 0;

l->fim = NULL;

*status = 1;

}

*lista = l;

}

void insere_esquerda (struct header *lista, int valor, int *status){

struct nodo *p;

int dados;

p=(struct nodo *) malloc(sizeof(struct nodo));

if (p==NULL)

*status=0;

else {

p->dados= valor;

p->proximo=lista->inicio;

(lista->qtde)++;

*status=1;

if (lista -> fim == NULL)

lista -> fim = p;

}

}

void lista_tudo (struct nodo **inicio) {

struct nodo *aux;

aux=*inicio;

if (aux!=NULL) {

printf ("\n============================\n\n");

printf ("dados %d\n",aux->codigo);

while (aux->proximo!=NULL) {

aux=aux->proximo;

printf ("dados %d\n",aux->codigo);

}

}

}

main (){

struct header *lista;

nodo *inicio,*dados,*fim;

int opcao,cod,status;

cria_header(&lista,&status);

do{

printf("\n Menu \n");

printf("\n 1 - Inserir cadastro");

printf("\n 2 - Altera cadastro");

printf("\n 3 - Apaga Cadastro");

printf("\n 4 - Lista alunos por codigo");

printf("\n 5 - Lista todos alunos");

printf("\n 6 - Sair");

printf("\n Digite a opcao desejada : ");

scanf("\n %d",&opcao);

switch(opcao){

case 1:

// printf("\n\n Digite o codigo do aluno: ");

// scanf("%d",&codigo);

// printf("\n Digite o nome do aluno: ");

// scanf("%c",&aluno);

// printf("\n Digite a nota G1 do aluno: ");

// scanf("%d",&g1);

// printf("\n Digite a nota G2 do aluno: ");

// scanf("%d",&g2);

insere_esquerda(lista,valor,&status); lista_tudo(&inicio);

break;

case 2:

// altera_aluno(&lista);

break;

case 3:

// apaga_aluno(&lista);

break;

case 4:

// lista_codigo(&lista);

break;

case 5:

lista_tudo(&inicio);

break;

}

}while(opcao!=6);

}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...