{"id":6552,"date":"2023-07-21T08:17:31","date_gmt":"2023-07-21T11:17:31","guid":{"rendered":"https:\/\/elemarjr.com\/clube-de-estudos\/?p=6552"},"modified":"2023-10-21T21:33:55","modified_gmt":"2023-10-22T00:33:55","slug":"estruturas-de-dados-organizando-e-manipulando-informacoes-na-programacao","status":"publish","type":"artigos","link":"https:\/\/elemarjr.com\/clube-de-estudos\/artigos\/estruturas-de-dados-organizando-e-manipulando-informacoes-na-programacao\/","title":{"rendered":"Estruturas de Dados: Organizando e Manipulando Informa\u00e7\u00f5es na Programa\u00e7\u00e3o"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">O que s\u00e3o Estruturas de Dados?<\/h2>\n\n\n\n<p>As estruturas de dados s\u00e3o um dos pilares fundamentais da ci\u00eancia da computa\u00e7\u00e3o e desempenham um papel essencial no desenvolvimento de algoritmos e sistemas eficientes. Elas s\u00e3o conjuntos organizados de dados que permitem armazenar, manipular e acessar informa\u00e7\u00f5es de forma estruturada e otimizada. As estruturas de dados fornecem um mecanismo para representar rela\u00e7\u00f5es e hierarquias entre dados, tornando mais f\u00e1cil a tarefa de resolver problemas complexos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Defini\u00e7\u00e3o e Import\u00e2ncia<\/h3>\n\n\n\n<p>Em sua ess\u00eancia, as estruturas de dados definem como os dados s\u00e3o organizados e armazenados na mem\u00f3ria do computador. Essa organiza\u00e7\u00e3o influencia diretamente o desempenho e efici\u00eancia das opera\u00e7\u00f5es realizadas sobre esses dados, como inser\u00e7\u00e3o, busca, atualiza\u00e7\u00e3o e remo\u00e7\u00e3o. Ao utilizar as estruturas de dados adequadas, \u00e9 poss\u00edvel otimizar o uso da mem\u00f3ria e melhorar o tempo de execu\u00e7\u00e3o dos algoritmos, resultando em solu\u00e7\u00f5es mais r\u00e1pidas e eficientes.<\/p>\n\n\n\n<p>A compreens\u00e3o das estruturas de dados \u00e9 fundamental para qualquer programador, pois elas s\u00e3o amplamente utilizadas em todas as \u00e1reas da programa\u00e7\u00e3o, desde o desenvolvimento de aplicativos at\u00e9 a cria\u00e7\u00e3o de sistemas complexos e processamento de grandes volumes de dados. Dominar as diferentes estruturas de dados \u00e9 essencial para resolver problemas de forma elegante e escal\u00e1vel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O Papel das Estruturas de Dados na Organiza\u00e7\u00e3o e Manipula\u00e7\u00e3o de Informa\u00e7\u00f5es<\/h3>\n\n\n\n<p>As estruturas de dados desempenham um papel crucial na organiza\u00e7\u00e3o e manipula\u00e7\u00e3o de informa\u00e7\u00f5es na programa\u00e7\u00e3o. Elas fornecem uma forma sistem\u00e1tica de armazenar e acessar dados, permitindo uma maior flexibilidade na manipula\u00e7\u00e3o dessas informa\u00e7\u00f5es. Al\u00e9m disso, as estruturas de dados ajudam a criar uma representa\u00e7\u00e3o abstrata dos dados do mundo real, facilitando a resolu\u00e7\u00e3o de problemas e o desenvolvimento de algoritmos.<\/p>\n\n\n\n<p>Ao escolher a estrutura de dados adequada para um determinado problema, os programadores podem melhorar a efici\u00eancia das opera\u00e7\u00f5es, economizar recursos computacionais e reduzir a complexidade dos algoritmos. Isso resulta em sistemas mais r\u00e1pidos, com menor consumo de mem\u00f3ria e maior facilidade de manuten\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estruturas de Dados Lineares<\/h2>\n\n\n\n<p>As estruturas de dados lineares s\u00e3o aquelas em que os elementos de dados s\u00e3o organizados de forma sequencial, ou seja, cada elemento possui um predecessor e um sucessor. Essas estruturas s\u00e3o amplamente utilizadas na programa\u00e7\u00e3o e incluem listas, pilhas e filas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Listas, Pilhas e Filas: Caracter\u00edsticas e Diferen\u00e7as<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Listas:<\/strong> As listas s\u00e3o estruturas de dados que permitem armazenar uma cole\u00e7\u00e3o de elementos, onde cada elemento \u00e9 composto por um valor e uma refer\u00eancia ao pr\u00f3ximo elemento da lista. As listas podem ser simplesmente encadeadas, onde cada elemento aponta apenas para o pr\u00f3ximo elemento, ou duplamente encadeadas, onde cada elemento possui refer\u00eancias tanto para o pr\u00f3ximo quanto para o elemento anterior.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pilhas:<\/strong> As pilhas s\u00e3o estruturas de dados do tipo LIFO (Last-In, First-Out), ou seja, o \u00faltimo elemento inserido \u00e9 o primeiro a ser removido. As opera\u00e7\u00f5es de inser\u00e7\u00e3o e remo\u00e7\u00e3o em uma pilha s\u00e3o realizadas apenas em uma extremidade, conhecida como o topo da pilha. Essa caracter\u00edstica torna as pilhas ideais para situa\u00e7\u00f5es em que a ordem de acesso aos elementos \u00e9 reversa.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Filas:<\/strong> As filas s\u00e3o estruturas de dados do tipo FIFO (First-In, First-Out), ou seja, o primeiro elemento inserido \u00e9 o primeiro a ser removido. As opera\u00e7\u00f5es de inser\u00e7\u00e3o ocorrem na parte traseira da fila, enquanto as remo\u00e7\u00f5es ocorrem na parte frontal. Filas s\u00e3o comumente utilizadas em cen\u00e1rios onde o primeiro elemento a entrar \u00e9 o primeiro a ser processado, como em algoritmos de busca em largura (BFS).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Implementa\u00e7\u00e3o e Opera\u00e7\u00f5es B\u00e1sicas em Estruturas de Dados Lineares<\/h3>\n\n\n\n<p>A seguir, apresentaremos exemplos de implementa\u00e7\u00e3o e opera\u00e7\u00f5es b\u00e1sicas para cada uma das estruturas de dados lineares:<\/p>\n\n\n\n<p>Implementa\u00e7\u00e3o de <span style=\"text-decoration: underline;\">Listas Simplesmente Encadeadas<\/span> em<strong> Python<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" data-code=\"class No:\n    def __init__(self, valor):\n        self.valor = valor\n        self.proximo = None\n\nclass ListaEncadeada:\n    def __init__(self):\n        self.inicio = None\n\n    def inserir(self, valor):\n        novo_no = No(valor)\n        if not self.inicio:\n            self.inicio = novo_no\n        else:\n            no_atual = self.inicio\n            while no_atual.proximo:\n                no_atual = no_atual.proximo\n            no_atual.proximo = novo_no\n\n    def imprimir(self):\n        no_atual = self.inicio\n        while no_atual:\n            print(no_atual.valor, end=&quot; -&gt; &quot;)\n            no_atual = no_atual.proximo\n        print(&quot;None&quot;)\n\n# Exemplo de uso da lista encadeada\nlista = ListaEncadeada()\nlista.inserir(10)\nlista.inserir(20)\nlista.inserir(30)\nlista.imprimir()\n\n# Fonte: ChatGPT\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">No<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">__init__<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">valor<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">valor <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> valor<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">proximo <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">None<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ListaEncadeada<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">__init__<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">inicio <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">None<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">inserir<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">valor<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        novo_no <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">No<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">valor<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">not<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">inicio<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">inicio <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> novo_no<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            no_atual <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">inicio<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> no_atual<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">proximo<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                no_atual <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> no_atual<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">proximo<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            no_atual<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">proximo <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> novo_no<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">imprimir<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        no_atual <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">self<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">inicio<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> no_atual<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">no_atual<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">valor<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">end<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\"> -&gt; <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            no_atual <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> no_atual<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">proximo<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">None<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Exemplo de uso da lista encadeada<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">lista <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">ListaEncadeada<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">lista<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">inserir<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">lista<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">inserir<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">lista<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">inserir<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">lista<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">imprimir<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Fonte: ChatGPT<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Implementa\u00e7\u00e3o de <span style=\"text-decoration: underline;\">Pilhas <\/span>em <strong>C++:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">C++<\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\n\nclass Pilha {\nprivate:\n    static const int capacidade = 100;\n    int elementos[capacidade];\n    int topo;\n\npublic:\n    Pilha() {\n        topo = -1;\n    }\n\n    void empilhar(int valor) {\n        if (topo &lt; capacidade - 1) {\n            topo++;\n            elementos[topo] = valor;\n        } else {\n            std::cout &lt;&lt; &quot;Pilha cheia! N\u00e3o \u00e9 poss\u00edvel empilhar.&quot; &lt;&lt; std::endl;\n        }\n    }\n\n    int desempilhar() {\n        if (topo &gt;= 0) {\n            int valor = elementos[topo];\n            topo--;\n            return valor;\n        } else {\n            std::cout &lt;&lt; &quot;Pilha vazia! N\u00e3o \u00e9 poss\u00edvel desempilhar.&quot; &lt;&lt; std::endl;\n            return -1; \/\/ Valor padr\u00e3o em caso de pilha vazia\n        }\n    }\n\n    bool vazia() {\n        return topo == -1;\n    }\n};\n\n\/\/ Exemplo de uso da pilha\nint main() {\n    Pilha pilha;\n    pilha.empilhar(10);\n    pilha.empilhar(20);\n    pilha.empilhar(30);\n\n    while (!pilha.vazia()) {\n        std::cout &lt;&lt; pilha.desempilhar() &lt;&lt; &quot; &quot;;\n    }\n    std::cout &lt;&lt; std::endl;\n\n    return 0;\n}\n\n\/\/ Fonte: ChatGPT\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\"><code><span class=\"line\"><span style=\"color: #5E81AC; font-weight: bold\">#<\/span><span style=\"color: #81A1C1\">include<\/span><span style=\"color: #5E81AC\"> <\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #A3BE8C\">iostream<\/span><span style=\"color: #ECEFF4\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pilha<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> capacidade <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">100<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">elementos<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">capacidade<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> topo<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">Pilha<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        topo <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">void<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">empilhar<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">valor<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">topo <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> capacidade <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            topo<\/span><span style=\"color: #81A1C1\">++;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">elementos<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">topo<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> valor<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            std<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #D8DEE9FF\">cout <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Pilha cheia! N\u00e3o \u00e9 poss\u00edvel empilhar.<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #D8DEE9FF\"> std<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #D8DEE9FF\">endl<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">desempilhar<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">topo <\/span><span style=\"color: #81A1C1\">&gt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> valor <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">elementos<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">topo<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            topo<\/span><span style=\"color: #81A1C1\">--;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> valor<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            std<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #D8DEE9FF\">cout <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Pilha vazia! N\u00e3o \u00e9 poss\u00edvel desempilhar.<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #D8DEE9FF\"> std<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #D8DEE9FF\">endl<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #616E88\"> \/\/ Valor padr\u00e3o em caso de pilha vazia<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">bool<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">vazia<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> topo <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ Exemplo de uso da pilha<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">main<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    Pilha pilha<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">pilha<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">empilhar<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">pilha<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">empilhar<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">pilha<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">empilhar<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9\">pilha<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">vazia<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        std<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #D8DEE9FF\">cout <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pilha<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">desempilhar<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    std<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #D8DEE9FF\">cout <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #D8DEE9FF\"> std<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #D8DEE9FF\">endl<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ Fonte: ChatGPT<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Implementa\u00e7\u00e3o de <span style=\"text-decoration: underline;\">Filas<\/span> em <strong>Java:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Java<\/span><span role=\"button\" tabindex=\"0\" data-code=\"import java.util.LinkedList;\nimport java.util.Queue;\n\npublic class Fila {\n    public static void main(String[] args) {\n        Queue&lt;Integer&gt; fila = new LinkedList&lt;&gt;();\n\n        \/\/ Inserindo elementos na fila\n        fila.add(10);\n        fila.add(20);\n        fila.add(30);\n\n        \/\/ Removendo e exibindo os elementos da fila\n        while (!fila.isEmpty()) {\n            System.out.print(fila.remove() + &quot; &quot;);\n        }\n    }\n}\n\n\/\/ Fonte: ChatGPT\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">java<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">util<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">LinkedList<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">java<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">util<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">Queue<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Fila<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">void<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">main<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #ECEFF4\">[]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">args<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">Queue<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #8FBCBB\">Integer<\/span><span style=\"color: #ECEFF4\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">fila<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">LinkedList<\/span><span style=\"color: #ECEFF4\">&lt;&gt;()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ Inserindo elementos na fila<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">fila<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">add<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">fila<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">add<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">fila<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">add<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ Removendo e exibindo os elementos da fila<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9\">fila<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">isEmpty<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">System<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">out<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">fila<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">remove<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ Fonte: ChatGPT<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>As implementa\u00e7\u00f5es acima s\u00e3o apenas exemplos simples e existem v\u00e1rias formas de implementar cada estrutura de dados. Cada linguagem de programa\u00e7\u00e3o possui suas pr\u00f3prias particularidades e bibliotecas que facilitam a implementa\u00e7\u00e3o dessas estruturas. O importante \u00e9 compreender os conceitos e princ\u00edpios por tr\u00e1s das estruturas de dados e adaptar a implementa\u00e7\u00e3o conforme a necessidade do projeto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estruturas de Dados N\u00e3o Lineares<\/h2>\n\n\n\n<p>As estruturas de dados n\u00e3o lineares s\u00e3o aquelas em que os elementos de dados possuem relacionamentos complexos e n\u00e3o s\u00e3o organizados sequencialmente. Duas das estruturas n\u00e3o lineares mais comuns s\u00e3o as \u00e1rvores e os grafos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c1rvores e Grafos: Conceitos e Representa\u00e7\u00f5es<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u00c1rvores:<\/strong> As \u00e1rvores s\u00e3o estruturas de dados hier\u00e1rquicas, compostas por n\u00f3s (ou v\u00e9rtices) interconectados por arestas. Cada \u00e1rvore tem um n\u00f3 raiz e os demais n\u00f3s s\u00e3o organizados em n\u00edveis, com cada n\u00f3 podendo ter v\u00e1rios filhos. As \u00e1rvores s\u00e3o amplamente utilizadas em algoritmos de busca, como \u00e1rvore bin\u00e1ria de busca, \u00e1rvore AVL, \u00e1rvore rubro-negra, entre outras.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Grafos:<\/strong> Os grafos s\u00e3o estruturas de dados que consistem em um conjunto de v\u00e9rtices e um conjunto de arestas que conectam esses v\u00e9rtices. Diferentemente das \u00e1rvores, os grafos podem ser direcionados (arestas com sentido) ou n\u00e3o direcionados (arestas sem sentido). Os grafos s\u00e3o utilizados em problemas que envolvem relacionamentos complexos, como redes sociais, mapas e problemas de otimiza\u00e7\u00e3o.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Explorando a Hierarquia e Conex\u00f5es em Estruturas de Dados N\u00e3o Lineares<\/h3>\n\n\n\n<p>As estruturas de dados n\u00e3o lineares permitem representar rela\u00e7\u00f5es complexas entre os dados, possibilitando a solu\u00e7\u00e3o de problemas de forma mais eficiente e elegante. A hierarquia presente nas \u00e1rvores permite realizar buscas de forma mais r\u00e1pida, enquanto os grafos permitem modelar situa\u00e7\u00f5es em que os elementos possuem conex\u00f5es arbitr\u00e1rias entre si.<\/p>\n\n\n\n<p>A representa\u00e7\u00e3o adequada das estruturas de dados n\u00e3o lineares \u00e9 essencial para aproveitar suas vantagens em diferentes contextos de aplica\u00e7\u00e3o. A escolha de algoritmos de busca e navega\u00e7\u00e3o adequados \u00e9 fundamental para otimizar o desempenho e obter resultados precisos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estruturas de Dados Din\u00e2micas vs. Est\u00e1ticas<\/h2>\n\n\n\n<p>As estruturas de dados podem ser classificadas em din\u00e2micas e est\u00e1ticas, dependendo de como o espa\u00e7o de armazenamento \u00e9 alocado e gerenciado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compara\u00e7\u00e3o entre Estruturas de Dados com Tamanho Fixo e Tamanho Vari\u00e1vel<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estruturas Din\u00e2micas: <\/strong>As estruturas din\u00e2micas permitem alocar mem\u00f3ria de forma flex\u00edvel durante a execu\u00e7\u00e3o do programa. Isso significa que o tamanho da estrutura pode variar conforme a necessidade, permitindo adicionar ou remover elementos conforme a demanda do problema. Exemplos de estruturas din\u00e2micas s\u00e3o listas ligadas, pilhas e filas com aloca\u00e7\u00e3o din\u00e2mica de mem\u00f3ria.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estruturas Est\u00e1ticas: <\/strong>As estruturas est\u00e1ticas t\u00eam um tamanho fixo e alocam mem\u00f3ria em tempo de compila\u00e7\u00e3o. O tamanho da estrutura \u00e9 definido previamente e n\u00e3o pode ser alterado durante a execu\u00e7\u00e3o do programa. Arrays e matrizes s\u00e3o exemplos de estruturas est\u00e1ticas.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Vantagens e Desvantagens de Cada Abordagem<\/h3>\n\n\n\n<p>As estruturas de dados din\u00e2micas oferecem maior flexibilidade e adaptabilidade, uma vez que o tamanho pode ser ajustado conforme a necessidade. Isso permite economizar mem\u00f3ria, j\u00e1 que a aloca\u00e7\u00e3o de espa\u00e7o \u00e9 feita sob demanda. No entanto, as estruturas din\u00e2micas requerem um maior gerenciamento de mem\u00f3ria e podem resultar em fragmenta\u00e7\u00e3o de mem\u00f3ria.<\/p>\n\n\n\n<p>J\u00e1 as estruturas est\u00e1ticas s\u00e3o mais f\u00e1ceis de implementar e gerenciar, uma vez que o tamanho \u00e9 fixo. Elas tamb\u00e9m tendem a ser mais eficientes em termos de acesso aos elementos, j\u00e1 que a aloca\u00e7\u00e3o de mem\u00f3ria \u00e9 feita uma \u00fanica vez. Por\u00e9m, a principal desvantagem das estruturas est\u00e1ticas \u00e9 a limita\u00e7\u00e3o do tamanho, o que pode levar a desperd\u00edcio de mem\u00f3ria ou impossibilidade de armazenar novos elementos quando a capacidade m\u00e1xima \u00e9 atingida.<\/p>\n\n\n\n<p>A escolha entre estruturas din\u00e2micas e est\u00e1ticas depende das necessidades espec\u00edficas do problema e das restri\u00e7\u00f5es de recursos do sistema em que o programa ser\u00e1 executado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Complexidade Computacional e Desempenho<\/h2>\n\n\n\n<p>Uma das principais considera\u00e7\u00f5es ao escolher uma estrutura de dados \u00e9 a complexidade computacional das opera\u00e7\u00f5es realizadas sobre ela. A complexidade computacional \u00e9 uma medida que estima o tempo e espa\u00e7o necess\u00e1rios para executar uma opera\u00e7\u00e3o em fun\u00e7\u00e3o do tamanho dos dados envolvidos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">An\u00e1lise de Complexidade de Tempo e Espa\u00e7o em Estruturas de Dados<\/h3>\n\n\n\n<p>A an\u00e1lise de complexidade de tempo e espa\u00e7o permite avaliar o desempenho de uma estrutura de dados em diferentes cen\u00e1rios. A nota\u00e7\u00e3o Big O (O) \u00e9 frequentemente utilizada para expressar a complexidade assint\u00f3tica, ou seja, a medida de crescimento da opera\u00e7\u00e3o em termos do tamanho da entrada.<\/p>\n\n\n\n<p>A complexidade de tempo \u00e9 geralmente representada como O(f(n)), onde f(n) \u00e9 uma fun\u00e7\u00e3o que descreve o n\u00famero de opera\u00e7\u00f5es realizadas em fun\u00e7\u00e3o do tamanho n dos dados. Por exemplo, uma busca em uma \u00e1rvore bin\u00e1ria de busca tem complexidade O(log n) no caso m\u00e9dio, pois a \u00e1rvore \u00e9 dividida em metades a cada passo da busca.<\/p>\n\n\n\n<p>A complexidade de espa\u00e7o refere-se \u00e0 quantidade de mem\u00f3ria utilizada pela estrutura de dados e \u00e9 geralmente representada como O(g(n)), onde g(n) \u00e9 uma fun\u00e7\u00e3o que descreve o espa\u00e7o necess\u00e1rio em fun\u00e7\u00e3o do tamanho n dos dados. Por exemplo, uma lista ligada simples tem complexidade de espa\u00e7o O(n), pois cada n\u00f3 ocupa uma quantidade constante de mem\u00f3ria, e a quantidade de n\u00f3s \u00e9 proporcional ao tamanho da lista.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como Escolher a Estrutura de Dados Adequada para Otimizar o Desempenho dos Algoritmos<\/h3>\n\n\n\n<p>Ao escolher uma estrutura de dados, \u00e9 importante considerar o tipo de opera\u00e7\u00f5es que ser\u00e3o realizadas com maior frequ\u00eancia e a complexidade dessas opera\u00e7\u00f5es. Por exemplo, se a busca \u00e9 uma opera\u00e7\u00e3o comum, uma \u00e1rvore bin\u00e1ria de busca pode ser uma boa escolha devido \u00e0 sua complexidade de busca O(log n). Por outro lado, se a inser\u00e7\u00e3o e remo\u00e7\u00e3o s\u00e3o opera\u00e7\u00f5es frequentes, uma lista ligada pode ser mais adequada, pois sua complexidade de inser\u00e7\u00e3o e remo\u00e7\u00e3o \u00e9 O(1) quando se tem uma refer\u00eancia para o n\u00f3 desejado.<\/p>\n\n\n\n<p>Al\u00e9m disso, \u00e9 essencial considerar a quantidade de dados a serem armazenados e as restri\u00e7\u00f5es de recursos do sistema. Em alguns casos, o uso de estruturas din\u00e2micas pode ser vantajoso para economizar mem\u00f3ria, enquanto em outros, o uso de estruturas est\u00e1ticas pode ser mais adequado para garantir um acesso r\u00e1pido aos dados.<\/p>\n\n\n\n<p>A escolha da estrutura de dados adequada \u00e9 uma etapa cr\u00edtica no projeto de um algoritmo ou sistema, pois pode ter um impacto significativo no desempenho e efici\u00eancia da solu\u00e7\u00e3o final.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aplica\u00e7\u00f5es Pr\u00e1ticas<\/h2>\n\n\n\n<p>As estruturas de dados s\u00e3o amplamente utilizadas em diversos cen\u00e1rios reais, desempenhando um papel fundamental em v\u00e1rias \u00e1reas da computa\u00e7\u00e3o. Abaixo est\u00e3o alguns exemplos pr\u00e1ticos de aplica\u00e7\u00e3o das estruturas de dados:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliza\u00e7\u00e3o de Listas, Pilhas e Filas em Aplica\u00e7\u00f5es de Gerenciamento de Dados<\/h3>\n\n\n\n<p>Listas s\u00e3o frequentemente utilizadas em aplicativos de gerenciamento de contatos, listas de tarefas e hist\u00f3ricos, onde a ordem dos elementos \u00e9 relevante.<br>Pilhas s\u00e3o aplicadas em processadores de linguagens de programa\u00e7\u00e3o para avaliar express\u00f5es matem\u00e1ticas e em navegadores para gerenciar o hist\u00f3rico de p\u00e1ginas visitadas.<br>Filas s\u00e3o comuns em sistemas de impress\u00e3o e gerenciamento de tarefas, garantindo que as tarefas sejam processadas na ordem de chegada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliza\u00e7\u00e3o de \u00c1rvores em Algoritmos de Busca e Organiza\u00e7\u00e3o de Dados<\/h3>\n\n\n\n<p>\u00c1rvores bin\u00e1rias de busca s\u00e3o usadas em bancos de dados e sistemas de indexa\u00e7\u00e3o para busca r\u00e1pida e eficiente de informa\u00e7\u00f5es.<br>\u00c1rvores AVL e \u00e1rvores rubro-negras s\u00e3o aplicadas em sistemas de busca e ordena\u00e7\u00e3o, garantindo uma organiza\u00e7\u00e3o equilibrada dos dados.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliza\u00e7\u00e3o de Grafos em Redes Sociais e Sistemas de Roteamento<\/h3>\n\n\n\n<p>Grafos s\u00e3o fundamentais para representar redes sociais, onde os usu\u00e1rios s\u00e3o os v\u00e9rtices e as conex\u00f5es de amizade s\u00e3o as arestas.<br>Algoritmos baseados em grafos s\u00e3o utilizados em sistemas de roteamento de redes de computadores para encontrar o caminho mais curto entre dois pontos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>Neste artigo, exploramos os principais conceitos e aplica\u00e7\u00f5es das estruturas de dados na programa\u00e7\u00e3o. As estruturas de dados desempenham um papel fundamental na organiza\u00e7\u00e3o e manipula\u00e7\u00e3o de informa\u00e7\u00f5es, e compreend\u00ea-las \u00e9 essencial para desenvolver algoritmos eficientes e escal\u00e1veis.<\/p>\n\n\n\n<p>Aprendemos sobre estruturas de dados lineares, incluindo listas, pilhas e filas, e como implement\u00e1-las e utilizar suas opera\u00e7\u00f5es b\u00e1sicas. Em seguida, exploramos as estruturas de dados n\u00e3o lineares, como \u00e1rvores e grafos, e suas representa\u00e7\u00f5es e aplica\u00e7\u00f5es pr\u00e1ticas.<\/p>\n\n\n\n<p>Al\u00e9m disso, discutimos a diferen\u00e7a entre estruturas de dados din\u00e2micas e est\u00e1ticas, destacando suas vantagens e desvantagens. A complexidade computacional e o desempenho das estruturas de dados foram abordados, mostrando como escolher a estrutura adequada para cada cen\u00e1rio.<\/p>\n\n\n\n<p>Por fim, observamos algumas aplica\u00e7\u00f5es pr\u00e1ticas das estruturas de dados em sistemas reais, demonstrando sua relev\u00e2ncia em diversas \u00e1reas da computa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Dominar as estruturas de dados \u00e9 essencial para qualquer programador, e esperamos que este artigo tenha fornecido uma introdu\u00e7\u00e3o s\u00f3lida e abrangente a esse importante t\u00f3pico da ci\u00eancia da computa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Lembre-se sempre de escolher a estrutura de dados mais adequada para cada situa\u00e7\u00e3o e considerar a complexidade computacional para garantir a efici\u00eancia e escalabilidade de seus algoritmos. Com conhecimento e pr\u00e1tica, voc\u00ea estar\u00e1 preparado para resolver problemas complexos e desenvolver solu\u00e7\u00f5es de alta qualidade em suas atividades de programa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Esse conte\u00fado \u00e9 parte do material disponibilizado para os participantes do meu grupo de estudos de&nbsp;<strong>Algoritmos e Estruturas de Dados<\/strong>. Voc\u00ea quer participar desse grupo?&nbsp;<strong><a href=\"https:\/\/elemarjr.com\/clube-de-estudos\/algoritmos-e-estruturas-de-dados\/\">Clique aqui e veja como funciona<\/a><\/strong>.<\/p>\n","protected":false},"featured_media":6554,"parent":0,"template":"","cursos":[5],"class_list":["post-6552","artigos","type-artigos","status-publish","has-post-thumbnail","hentry","cursos-algortimos"],"acf":[],"_links":{"self":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/artigos\/6552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/artigos"}],"about":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/types\/artigos"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/media\/6554"}],"wp:attachment":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/media?parent=6552"}],"wp:term":[{"taxonomy":"cursos","embeddable":true,"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/cursos?post=6552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}