Pesquisar na Comunidade
Mostrando resultados para as tags ''simples''.
Encontrado 1 registro
-
Lista simplesmente encadeada tendo como argumento outra estrutura com dados
Fah postou um tópico no fórum C/C++
Boa Noite Pessoal! Estou com dificuldade em implementar um exercício de lista simplesmente encadeada. Nele pede para criar uma estrutura com os dados de um aluno (matricula, nome e media), e outra para ser a lista (com a estrutura com os dados do aluno e um no com as informações do próximo nó). Uma das opções é para inserir os dados de um novo aluno em ordem crescente de matricula. O código está dando erro. Vocês conseguem me dizer onde estou errando? Vejam meu código: #include<stdio.h> #include<stdlib.h> #include<string.h> struct aluno{ int matricula; char nome[100]; float media; }; typedef struct aluno Aluno; struct no{ Aluno* dados; struct no* prox; }; typedef struct no No; No* cria(No* l){ No* p=(No*)malloc(sizeof(No)); p->dados=NULL; return l; } No* ins_ordenado(No* l,int mat,char* nome,float nota){ Aluno* Al=(Aluno*)malloc(sizeof(Aluno)); No* novo=(No*)malloc(sizeof(No)); int i=0; Al->matricula=mat; while(nome!='\0'){ Al->nome=nome; i++; } Al->nome=NULL; Al->media=nota; novo->dados=Al; No*p=l; No*aux=NULL; if(l==NULL){ novo->prox=l; return novo; } while(p!=NULL&&p->dados->matricula<Al->matricula){ aux=p; p=p->prox; } novo->prox=aux->prox; aux->prox=novo; if(p==NULL){ novo->prox=NULL; } return l; } void imprime(No* l){ No* p; printf("turma 1:\n"); for(p=l;p!=NULL;p->prox){ printf("Matricula: %d\t Nome: %s Nota:%f\n",p->dados->matricula,p->dados->nome,p->dados->media); } printf("\n"); } int vazia(No* l){ return(l==NULL); } int main(){ No* l1=cria(l1); l1=ins_ordenado(l1,1,"Maria",5); printf("vazia? %d",vazia(l1)); //imprime(l1); return 0; } Desde já, Obrigada!- 2 respostas
-
- simples
- lista encadeada
-
(e mais 1 )
Tags: