Git Product home page Git Product logo

netostana / estruturas-de-dados Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 48 KB

Repositório contendo estudos de estruturas de dados desenvolvidos na linguagem C++. As estruturas apresentadas neste repositório partem de estudos iniciados no curso de estruturas de dados do canal do Professor Douglas Maioli no YouTube.

C++ 100.00%
cpp data-structures estruturas-de-dados fifo fila hash-table lifo linked-list lista-encadeada pilha tabela-hash

estruturas-de-dados's Introduction

Estruturas de Dados

Repositório contendo estudos de estruturas de dados desenvolvidos na linguagem C++.

Tipo de Dado

Todas as estruturas seguem um padrão de desenvolvimento único e armazenam os dados de uma classe denominada Individuo, contendo as variáveis int: id e idade; float: peso e altura; e string: nome, assim como os respectivos métodos get de cada uma destas e set das variáveis que podem mudar ao longo do tempo.

class Individuo
{
private:
    int id, idade;
    float peso, altura;
    string nome;
public:
    Individuo();
    Individuo(int id, int idade, float peso, float altura, string nome);

    int get_id();

    int get_idade();
    void set_idade(int idade);

    float get_peso();
    void set_peso(float peso);

    float get_altura();
    void set_altura(float altura);

    string get_nome();
};

Um construtor padrão para a classe Individuo também foi desenvolvido para fornecer o preenchimento automático de algumas estruturas específicas.

Individuo::Individuo()
{
    this->id = -1;
    this->idade = 0;
    this->peso = 0;
    this->altura = 0;
    this->nome = "";
}

Métodos

Quanto às estruturas em si, estas também estão desenvolvidas em forma de classe e possuem, para além de seus métodos construtores e destrutores específicos, sete métodos padrões que seguem o mesmo desenvolvimento.

Está Vazia

bool esta_vazia();

Este método verifica a ausência de elementos na estrutura de dados e é utilizado principalmente para evitar buscas desnecessárias.

Está cheia

bool esta_cheia();

Este método verifica se ainda há espaço de armazenamento na estrutura e é utilizado principalmente no controle do fluxo de inserção de elementos.

Quantidade de Itens

int quantidade_itens();

Este método retorna a quantidade de elementos válidos dentro da estrutura, excluindo os elementos preenchidos com as informações do construtor padrão da classe Individuo.

Inserir

bool inserir(Individuo individuo);

Método utilizado para inserir um Individuo na estrutura, pode retornar true quando o elemento é inserido com sucesso, ou false quando ocorre algum erro.

Remover

Individuo remover(int id);

Método utilizado para remover um Individuo da estrutura, utiliza o id do Individuo a ser removido como parâmetro, ou atua sem parâmetros quando a estrutura possui critérios específicos de ordem de remoção. Retorna o Individuo removido em caso de sucesso, ou um Individuo genérico do construtor padrão em caso de falha.

Buscar

Individuo buscar(int id);

Método utilizado para buscar um elemento na estrutura, utiliza sempre o id do Individuo a ser buscado como parâmetro e retorna o mesmo em caso de sucesso. Em caso de falha um Individuo genérico do construtor padrão é retornado.

Imprimir

void imprimir();

Este método imprime a estrutura de dados de acordo com a ordem em que seus elementos estão inseridos.

Estruturas

Armazena os dados de cada Individuo em um vetor com tamanho alocado pelo usuário no tempo de execução.

Armazena os dados de cada Individuo em diferentes formas de listas encadeadas.

Armazena os dados de cada Individuo em forma de fila, onde o primeiro elemento da fila é o primeiro a ser removido.

Armazena os dados de cada Individuo em forma de pilha, onde o último elemento da pilha é o primeiro a ser removido.

Armazena os dados de cada Individuo em um vetor na posição respectiva ao resultado de uma função hash aplicada sobre o seu id. Diferentes formas de tratamento de colisões estão apresentadas.

Referência

As estruturas apresentadas neste repositório partem de estudos iniciados no curso de estrutura de dados do canal do Professor Douglas Maioli no YouTube.

estruturas-de-dados's People

Contributors

netostana avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.