Skip to content

diogoribeiro1/data-structure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structure - Pilha, Fila, Lista Ligada e Arvore

Este é um projeto que implementa uma simulacão de como funciona uma pilha, fila, lista e arvore em estrutura de dados, pra desenvolver as funcionalidades da pilha, foi usado java e spring para o backend e no frontend foi utilizado bootstrap e ajax com jquery.

Teste em Produção

https://data-structure-production-a118.up.railway.app/index.html

Tecnologias Utilizadas

  • Java 11
  • Spring / Spring Boot
  • HTML
  • CSS
  • JavaScript
  • Ajax
  • jQuery
  • Bootstrap

Funcionalidades do Sistema

  • Criar Pilha;
  • Mudar tamanho da pilha;
  • Empilhar;
  • Desempilhar;
  • Criar Fila;
  • Mudar tamanho da fila;
  • Efileirar;
  • Desenfileirar;
  • Criar Lista Ligada
  • Inserir no meio da Lista
  • Inserir no fim da Lista
  • Inserir no inicio da Lista
  • Remover no inicio da Lista
  • Inserir no fim da Lista
  • Buscar Lista
  • Criar Arvore
  • Adicionar valor da Arvore
  • Remover valor da Arvore
  • Buscar Arvore

Configure e execute

  1. Certifique-se de ter o JDK (Java Development Kit) instalado em seu sistema. Você pode verificar digitando java -version no terminal. Se não estiver instalado, você precisará instalá-lo.

  2. Certifique-se de ter o Maven instalado em seu sistema. O Maven é uma ferramenta de automação de compilação e gerenciamento de dependências para projetos Java. Verifique digitando mvn -version no terminal. Se não estiver instalado, você precisará instalá-lo.

  3. Abra o terminal e navegue até o diretório raiz do seu projeto Spring. O diretório raiz geralmente contém o arquivo pom.xml.

  4. Execute o seguinte comando para compilar o projeto e empacotá-lo em um arquivo JAR:

   mvn clean package    

Isso irá compilar o código-fonte, executar os testes e gerar o arquivo JAR no diretório "target".

  1. Depois que o pacote JAR for gerado com sucesso, você poderá executá-lo com o comando java -jar seguido do nome do arquivo JAR. Por exemplo:
   java -jar target/meuapp.jar    

Substitua "meuapp.jar" pelo nome real do seu arquivo JAR.

  1. O aplicativo Spring será iniciado e começará a ser executado. Você verá as mensagens de log e, se tudo estiver configurado corretamente, poderá acessar o aplicativo em um navegador da web no endereço "http://localhost:8080" (ou outro endereço e porta, dependendo da configuração do seu aplicativo Spring).

Endpoints

Pilha

Endpoints Query Parameters Verb
/api/pilha/push * POST
/api/pilha * GET
/api/pilha/pop * GET
/api/pilha/{tamanho} * GET
EMPILHAR - /api/pilha/push

Descrição

  • Empilha um valor na pilha.

Códigos de Resposta

  • 201: Empilhado com sucesso.

  • 400: Pilha Cheia.

Exemplo de Requisição

  • POST - /api/pilha/push
  • HTTP/1.1
  • Host: example.com
  • Content-Type: application/json
    {
        "valor":"3"
    }    

Exemplo de Resposta

  • HTTP/1.1 201 CREATED
  • Content-Type: application/json
    Empilhado com sucesso
GET PILHA - /api/pilha

Descrição

Retorna a pilha e a posicao do topo da pilha.

Códigos de Resposta

  • 200: Pilha retornado com sucesso.

Exemplo de Requisição

  • GET - /api/pilha
  • HTTP/1.1
  • Host: example.com

Exemplo de Resposta

  • HTTP/1.1 200 OK
  • Content-Type: application/json
    {
	"lista": [],
	"topo": 0
    } 
DESEMPILHAR - /api/pilha/pop

Descrição

Desempilha o valor do topo da pilha.

Códigos de Resposta

  • 200: Desempilhado com sucesso.

Exemplo de Requisição

  • GET - /api/pilha/pop
  • HTTP/1.1
  • Host: example.com

Exemplo de Resposta

  • HTTP/1.1 - 200 OK
    6   
SET CAPACIDADE - /api/pilha/{tamanho}

Descrição

Cria uma pilha com a capacidade passada no parametro.

Parâmetros de Entrada

  • tamanho (obrigatório): Capacidade da pilha.

Códigos de Resposta

  • 200: Pilha criada com sucesso.

Exemplo de Requisição

  • GET /api/pilha/5
  • Host: example.com

Exemplo de Resposta

HTTP/1.1 200 OK

    {
        "5"
    }    

Fila

Endpoints Query Parameters Verb
/api/fila/queue * POST
/api/fila * GET
/api/fila/unqueue * GET
/api/fila/{tamanho} * GET
ENFILEIRAR - /api/fila/queue

Descrição

  • Enfileira um valor na fila.

Códigos de Resposta

  • 201: Enfileirado com sucesso.

  • 400: Fila Cheia.

Exemplo de Requisição

    {
        "valor":"3"
    }    

Exemplo de Resposta

  • HTTP/1.1 201 CREATED
  • Content-Type: application/json
    Enfileirado com sucesso
GET FILA - /api/fila

Descrição

Retorna a fila e a posicao do topo da pilha.

Códigos de Resposta

  • 200: Fila retornada com sucesso.
  • 400: Fila vazia.

Exemplo de Requisição

Exemplo de Resposta

  • HTTP/1.1 200 OK
  • Content-Type: application/json
    {
	"lista": [],
	"inicio": 0,
	"fim": 4
}
DESENFILEIRAR - /api/fila/unqueue

Descrição

Desenfileira o valor do inicio da fila e retorna-o como resposta.

Códigos de Resposta

  • 200: 6.
  • 400: Fila vazia.

Exemplo de Requisição

Exemplo de Resposta

  • HTTP/1.1 - 200 OK
    6   
SET CAPACIDADE - /api/fila//{size}

Descrição

Cria uma fila com a capacidade passada no parametro.

Parâmetros de Entrada

  • size (obrigatório): Capacidade da fila.

Códigos de Resposta

  • 200: 5.

Exemplo de Requisição

Exemplo de Resposta

HTTP/1.1 200 OK

"6"

Lista Ligada

Endpoints Query Parameters Verb
/api/lista/addMeio * POST
/api/lista/addFim * POST
/api/lista/addInicio * POST
/api/lista/removerInicio * DELETE
/api/lista/removerFim * DELETE
/api/lista/listarLista * GET
Adcionar no Meio - /api/lista/addMeio

Descrição

  • Enfileira um valor na fila.

Códigos de Resposta

  • 201: Enfileirado com sucesso.

  • 400: Fila Cheia.

Exemplo de Requisição

    {
        "valor":"3"
    }    

Exemplo de Resposta

  • HTTP/1.1 201 CREATED
  • Content-Type: application/json
    Enfileirado com sucesso
Adcionar no Inicio - /api/lista/addInicio

Descrição

Retorna a fila e a posicao do topo da pilha.

Códigos de Resposta

  • 200: Fila retornada com sucesso.
  • 400: Fila vazia.

Exemplo de Requisição

Exemplo de Resposta

  • HTTP/1.1 200 OK
  • Content-Type: application/json
    {
	"lista": [],
	"inicio": 0,
	"fim": 4
}
Adcionar no Fim - /api/lista/addFim

Descrição

Desenfileira o valor do inicio da fila e retorna-o como resposta.

Códigos de Resposta

  • 200: 6.
  • 400: Fila vazia.

Exemplo de Requisição

Exemplo de Resposta

  • HTTP/1.1 - 200 OK
    6   
Remover Inicio - /api/lista/removerInicio

Descrição

Cria uma fila com a capacidade passada no parametro.

Parâmetros de Entrada

  • size (obrigatório): Capacidade da fila.

Códigos de Resposta

  • 200: 5.

Exemplo de Requisição

Exemplo de Resposta

HTTP/1.1 200 OK

"6"
Remover no Fim - /api/lista/removerFim

Descrição

  • Enfileira um valor na fila.

Códigos de Resposta

  • 201: Enfileirado com sucesso.

  • 400: Fila Cheia.

Exemplo de Requisição

    {
        "valor":"3"
    }    

Exemplo de Resposta

  • HTTP/1.1 201 CREATED
  • Content-Type: application/json
    Enfileirado com sucesso
GET Lista - /api/lista/listarLista

Descrição

Cria uma fila com a capacidade passada no parametro.

Parâmetros de Entrada

  • size (obrigatório): Capacidade da fila.

Códigos de Resposta

  • 200: 5.

Exemplo de Requisição

Exemplo de Resposta

HTTP/1.1 200 OK

"6"

Arvore

Endpoints Query Parameters Verb
/api/tree * GET
/api/tree/add * POST
/api/tree/remove * DELETE
Get arvore - /api/tree

Descrição

  • Enfileira um valor na fila.

Códigos de Resposta

  • 201: Enfileirado com sucesso.

  • 400: Fila Cheia.

Exemplo de Requisição

    {
        "valor":"3"
    }    

Exemplo de Resposta

  • HTTP/1.1 201 CREATED
  • Content-Type: application/json
    Enfileirado com sucesso
Adicionar - /api/tree/add

Descrição

Retorna a fila e a posicao do topo da pilha.

Códigos de Resposta

  • 200: Fila retornada com sucesso.
  • 400: Fila vazia.

Exemplo de Requisição

Exemplo de Resposta

  • HTTP/1.1 200 OK
  • Content-Type: application/json
    {
	"lista": [],
	"inicio": 0,
	"fim": 4
}
Remover - /api/tree/remove

Descrição

Desenfileira o valor do inicio da fila e retorna-o como resposta.

Códigos de Resposta

  • 200: 6.
  • 400: Fila vazia.

Exemplo de Requisição

Exemplo de Resposta

  • HTTP/1.1 - 200 OK
    6   

Screenshot from 2023-06-18 23-44-16 Screenshot from 2023-06-18 23-44-25 Screenshot from 2023-06-18 23-44-29 Screenshot from 2023-06-18 23-44-34 Screenshot from 2023-06-18 23-44-57