Ir ao conteúdo
  • Cadastre-se
Galbieth

[AJUDA]Algoritmo em Cint

Recommended Posts

Pessoal, boa noite! 
 

Gostaria da ajuda de vocês para entender um algoritmo em C++, tenho prova semana que vem e o prof não veio essa semana pra tirar as dúvidas... vou escrever ele (esse é de pillha usando vetor), não vou colocar o main, só as funções mesmo:

typedef struct pilha {  int n; //nº de elementos do vetor  float v[100];} Pilha;Pilha*criaPilha (){ //porque aqui tem um apontador no Pilha*criaPilha? ele vai indicar o endereço de memória que os elementos do vetor vão ficar armazenados?  Pilha*p = (Pilha*)malloc (sizeof(Pilha)); //o que significa esse ponteiro de p no Pilha*p? Na verdade, o que o mallloc faz, não entendi essa parte  p->n=0;  return p;}boolean pilha Vazia (pilha*p){  return p->n==0;} //aqui ele disse que é pra fazer uma verificação se a pilha estiver vazia ou não, o boolean retorna valor?void push (Pilha*p, float x){  if(p->n==100) {    printf("Pilha cheia");  else {    p->v[n]=x;  //o que significa esse p->n? Pode ser a posição do número no vetor que está recebendo um valor X já alterando no endereço da memória?    n++;}   }}float topo (Pilha*V){ //o que é esse apontador?  if(pilhaVazia(p)){ //qual o valor do P que ele irá buscar? Aonde ele faz essa verificação?    printf("pilha vazia");    exit(1); }  else {    return p->v[n-1];}void pop (Pilha*p) {  if(pilhaVazia(p)) //idem acima    printf("Pilha vazia)  else    n--;}

Desde já agradeço a ajuda!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

//porque aqui tem um apontador no Pilha*criaPilha? ele vai indicar o endereço de memória que os elementos do vetor vão ficar armazenados?
 
sim,e isso quer dizer que a função retorna um ponteiro do tipo "Pilha"
 
//o que significa esse ponteiro de p no Pilha*p? Na verdade, o que o mallloc faz, não entendi essa parte
 
p é um ponteiro para um tipo Pilha,malloc reserva um segmento na memória dentro do espaço em que a tabela descritora de segmento do sistema operacional reservou para o seu programa,apesar que em C++ se usa mais o operador "new" para alocar memória,no final das contas new tambem usa malloc para alocar memória
 
 
//aqui ele disse que é pra fazer uma verificação se a pilha estiver vazia ou não, o boolean retorna valor?
 
retorna 1 para true e 0 para false
 
 
 
o resto são erros no programa
 
aqui ta a correção

typedef struct pilha {  int n; //nº de elementos do vetor  float v[100];} Pilha; Pilha*criaPilha (){ //porque aqui tem um apontador no Pilha*criaPilha? ele vai indicar o endereço de memória que os elementos do vetor vão ficar armazenados?  Pilha*p = (Pilha*)malloc (sizeof(Pilha)); //o que significa esse ponteiro de p no Pilha*p? Na verdade, o que o mallloc faz, não entendi essa parte  p->n=0;  return p;} bool pilhaVazia (Pilha*p){  return p->n==0;} //aqui ele disse que é pra fazer uma verificação se a pilha estiver vazia ou não, o boolean retorna valor? void push (Pilha*p, float x){  if(p->n==100)    std::printf("Pilha cheia");  else  {    p->v[p->n]=x;  //o que significa esse p->n? Pode ser a posição do número no vetor que está recebendo um valor X já alterando no endereço da memória?    p->n++;  }   } float topo (Pilha *p){ //o que é esse apontador?  if(pilhaVazia(p))  { //qual o valor do P que ele irá buscar? Aonde ele faz essa verificação?    printf("pilha vazia");    exit(1);  }  else {    return p->v[p->n-1];  }   } void pop (Pilha*p) {  if(pilhaVazia(p)) //idem acima    std::printf("Pilha vazia");  else    p->n--;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×