Me ajuda a simplificar, por favor!

Olá pessoal, sou estudante de Estrutura de Dados e estou com a seguinte atividade, mas gostaria apenas de ajuda na simplificação das linhas. Não consigo simplificar mais ou ainda não sei e pra não dar problema na compilação queria tentar buscar ajuda pra aprender sempre mais. Deixando claro Não estou pedindo a atividade, apenas que me ajudem a simplificar melhor.

A atividade é a seguinte:

"Passo 1: Insira os números [1, 2, 3, 4 e 5] em uma lista - com 5 células;
Passo 2: Remova todos os dados da lista e insira-os em uma Pilha - com 5 células. Deve-se sempre remover os dados da célula inicial da lista;
Passo 3: Remova os dados da Pilha e insira-os em uma Fila - com 10 células);
Passo 4: Insira os números [6, 7, 8, 9 e 10] na lista;
Passo 5: Repita os passos 2 e 3.
Passo 6: Exiba todos os números que foram inseridos na fila.

O meu comando está assim (ele não está completo para evitar que o pessoal cole a resposta da atividade):

package numeros;
public class Numeros { 
public static void main(String[] args) {
  int num [] = {1,2,3,4,5};
  for (int c=0; c<num.length; c++){
   System.out.println("Na posição " + c + " temos o valor " + num[c]);
        }
   }
 }

Estou tendo um problema nessa parte, como se não tivesse reconhecendo que fechei a clave, sendo que no final do código inteiro a chave está fechada:

10    public class Pilha.java {
11
12	int elementos [];
13	int topo;
14	
15	public Pilha(){
16	elementos = new int[5];
17	topo      = -1; //posição invalida do vetor;

Compilation Errors Detected

Line: 10
‘{’ expected

Meus questionamentos são:

  • Eu posso deixar de usar um “Package” e deixar só um “public class” em diante?
  • É melhor inserir os números assim ou usar o arraylist e por a limitação?
  • A base da pilha sempre fica de baixo pra cima mesmo?
  • Seria bom colocar um “arrays.sort(num);” pra organizar depois de retirar da pilha e passar pra fila ou só quando colocar os 10 números e mostrar o resultado da fila (passo 6)?

Venho trazendo mais questionamentos com o decorrer da interação do tópico.

Desde já, um grande abraço a todos!

O seu erro de compilação é porque não se pode ter ponto no nome da classe. Seu arquivo se chama Pilha.java, mas o nome da classe deve ser apenas Pilha.

  1. O uso de pacotes é opcional
  2. É melhor usar ArrayList porque o exercicio pede pra remover os números da lista, ou seja, no final vc deve ficar com uma lista e uma pilha vazias e não dá pra remover dados de um array comum.
  3. A base fica embaixo, imagine uma pilha de pratos, a estrutura pilha funciona seguindo a mesma lógica. No console, quando vc pede pra imprimir os dados da pilha, a base fica à direita.
  4. Não há necessidade de usar o sort() em momento algum, primeiro porque vc vai inserir os dados “manualmente”, segundo porque depois que vc passar os dados pra pilha, espera-se que sua lista esteja vazia.

Eu estava tentando ajudar um colega com a mesma atividade num outro tópico, se tiver interesse, veja a discussão a partir daqui:

O @Yago_Rodrigues chegou a uma conclusão aqui:

No caso, eu interpretei que o objetivo do exercicio era apenas observar e descrever o comportamento de cada estrutura de dados e que vc poderia usar as classes que o Java oferece sem precisar criar cada estrutura do zero.

A atividade pede que vcs implementei a lista, a pilha e a fila do zero?

1 curtida

Olá @wldomiciano, obrigado pelo interesse.
Eu coloquei “Pilha.java” porque no IDE tava falando que somente Pilha não aceitaria.

    Compilation Errors Detected

Line: 10
class Pilha is public, should be declared in a file named Pilha.java

Vou seguir a dica de usar o ArrayList e dar um pulinho do outro tópico. Antes de criar esse eu dei uma pesquisada, mas não tava conseguindo achar algo que completasse minhas dúvidas, acho que por falta de experiência não conseguia associar bem as coisas, mas obrigado mesmo assim.

A atividade não pede pra criar tudo do 0, eu criei por ver vídeo assim já que o conteúdo que a faculdade disponibiliza fala o que é cada conceito, porém não explica como fazer.

Vc interpretou a mensagem de forma errada. Ela não diz que a classe deve se chamar Pilha.java.

O que a mensagem diz é:

A classe Pilha é publica e por isso deve ser declarada em um ARQUIVO chamado Pilha.java.

1 curtida

Exatamente.
Você só pode ter uma classe pública por arquivo .java.
Crie um novo arquivo para a classe Pilha.

1 curtida