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

Reposiçao de elementos na Pilha


Giza

Pergunta

Ola,

Estou com uma duvida que já passei horas pensando e tentando e não resolvo: Preciso reposicionar um elemento numa pilha, e passado por referencia o ponteiro da struct, o indice do elemento a reposicionar e o indice da posiçao que este elemento vai ficar.

Sendo que a base da pilha o indice e 0;

Sei que posso somente mexer no topo, e não e apenas uma troca de posiçao e sim o deslocamento dos outros elementos.

Meu professor falou que precisa de uma auxiliar, fiz este codigo abaixo, mas sinceramente nem eu estou entendendo.

Obrigada, se alguém puder me ajudar, agradeço muito.

int reposicionaElementoPE(pPE p, int el, int pos){

int aux, i;

mencopy(aux,p->vet[el]);

if(p->vet[el]<pos)

for(i=el;i<p->tamVet;i++){

p->vet[i] = p->vet[i-1];

}

mencopy(p->vet[pos],aux);

return Sucesso;

}

[code]

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Também não entendi bem o problema... Tem que inserir um elemento em uma determinada posição em uma pilha é isso?

Tipo, base da pilha é indice 0, topo da pilha 10, preciso inserir um elemento com indice 4 na posição 4 da pilha?

Se for isso, o esquema é ir desempilhando os elementos da pilha que estão acima do indice desejado em uma pilha aux. Fazendo um teste

elemento indice 10 da pilha vai para o 0 na pilha auxiliar;

elemento indice 9 da pilha vai para o 1 na pilha auxiliar;

....

elemento indice 4 na pilha vai para o 6 na pilha auxiliar;

chegamos no indice desejado, insira o elemento que quer aqui

Agora pegamos a pilha auxiliar e desempilhamos na pilha original e pronto. Você inseriu um elemento numa posição especifica da pilha só mexendo no topo dela.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

Acredito que é isso mesmo...

Então trabalho com duas pilhas em vez de uma, tipo uma pilha original e a pilha auxiliar, chegando na posição escolhida, testando com um IF, coloco la o valor do indice escolhido e volto a pilha para o lugar anterior,vou tentar assim...

Agradeço, se não conseguir volto a postar..

Link para o comentário
Compartilhar em outros sites

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,9k
×
×
  • Criar Novo...