{"id":47754521,"url":"https://github.com/pedro-trovo/lista-encadeada","last_synced_at":"2026-04-03T04:04:05.348Z","repository":{"id":346254934,"uuid":"1011441030","full_name":"pedro-Trovo/lista-encadeada","owner":"pedro-Trovo","description":"Implementação de uma Lista Encadeada em C com alocação dinâmica","archived":false,"fork":false,"pushed_at":"2026-03-23T01:52:54.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-23T21:48:10.534Z","etag":null,"topics":["alocacao-dinamica","c","clion","cmakelists","estrutura-de-dados","linked-list","lista-encadeada"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pedro-Trovo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-30T20:27:42.000Z","updated_at":"2026-03-23T01:52:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pedro-Trovo/lista-encadeada","commit_stats":null,"previous_names":["pedro-trovo/lista-encadeada"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/pedro-Trovo/lista-encadeada","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro-Trovo%2Flista-encadeada","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro-Trovo%2Flista-encadeada/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro-Trovo%2Flista-encadeada/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro-Trovo%2Flista-encadeada/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedro-Trovo","download_url":"https://codeload.github.com/pedro-Trovo/lista-encadeada/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro-Trovo%2Flista-encadeada/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31333229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T03:20:36.090Z","status":"ssl_error","status_checked_at":"2026-04-03T03:20:35.133Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alocacao-dinamica","c","clion","cmakelists","estrutura-de-dados","linked-list","lista-encadeada"],"created_at":"2026-04-03T04:04:02.039Z","updated_at":"2026-04-03T04:04:05.342Z","avatar_url":"https://github.com/pedro-Trovo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eLista Encadeada\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eImplementação de uma Lista Encadeada em C com alocação dinâmica\u003c/strong\u003e\u003cbr\u003e\n  Estrutura de dados que permite inserção no início e no fim, com funções para média, cópia, conversão de vetor e comparação.\n\u003c/p\u003e\n\n## Tópicos\n\n- [Sobre o Projeto](#sobre-o-projeto) \n- [Conceito de Lista Encadeada](#conceito-de-lista-encadeada) \n- [Estrutura do Projeto](#estrutura-do-projeto)  \n- [Funcionalidades](#funcionalidades)   \n- [Tecnologias](#tecnologias)  \n- [Como executar o projeto](#como-executar-o-projeto)\n- [Imagens do Projeto](#imagens-do-projeto)\n\n\n# Sobre o Projeto\nEste projeto implementa uma **Lista Encadeada** em linguagem C, utilizando alocação dinâmica de memória. O objetivo é demonstrar os conceitos de estrutura de dados, manipulação de nós e operações básicas de listas. O código está organizado com separação entre arquivos de cabeçalho (`.h`) e implementação (`.c`).\n\nOs valores testados no programa são **pré-definidos no código** para demonstrar as funcionalidades da lista, incluindo inserção no início, inserção no fim, remoção, média dos elementos, cópia entre listas, conversão de vetor para lista e comparação entre listas.\n\n# Conceito de Lista Encadeada\n\nUma lista encadeada é uma estrutura de dados linear onde cada elemento (nó) contém um valor e um ponteiro para o próximo elemento. Diferente de um vetor, os elementos não ocupam posições contíguas na memória, permitindo inserções e remoções dinâmicas sem realocação de toda a estrutura.\n\nA **lista encadeada** não possui um tamanho máximo pré-definido, podendo crescer conforme a necessidade, utilizando alocação dinâmica de memória.\n\n\n# Estrutura do Projeto\n\n```\nlista-encadeada/\n├── include/\n│   ├── lista.h         # Estrutura da lista e protótipos\n│   └── no.h            # Estrutura do nó para lista encadeada\n├── src/\n│   ├── main.c          # Programa principal com testes\n│   ├── lista.c         # Implementação das operações da lista\n│   └── no.c            # Implementação dos nós\n├── readme-img/\n│   ├── resultado1.png  # Imagem da execução - parte 1\n│   └── resultado2.png  # Imagem da execução - parte 2\n├── .gitignore\n└── CMakeLists.txt      # Configuração do CMake para CLion\n\n```\n\n### `include/`\n\n#### `lista.h`\n- Define a estrutura `t_lista` com ponteiro para o primeiro nó e contador `tamanho`\n- Protótipos das funções:\n  - `inicializa_lista` - Inicializa a lista vazia\n  - `esta_vazia` - Verifica se a lista está vazia\n  - `insere_inicio` - Insere elemento no início da lista\n  - `insere_fim` - Insere elemento no final da lista\n  - `remove_inicio` - Remove elemento do início da lista\n  - `remove_fim` - Remove elemento do final da lista\n  - `mostra_lista` - Exibe todos os elementos da lista\n  - `media_lista` - Calcula a média dos elementos\n  - `copiar_lista` - Copia uma lista para outra\n  - `vetor_para_lista` - Converte vetor em lista encadeada\n  - `comparar_lista` - Compara duas listas\n\n#### `no.h`\n- Define a estrutura `t_no` para os nós da lista encadeada\n- Protótipo da função `constroi_no` para criação dinâmica de nós\n\n### `src/`\n\n#### `main.c`              \n- Programa principal que demonstra o uso da lista encadeada\n- **Valores pré-definidos:** Inserções de 5, 20 e 100 no início\n- Realiza testes de média, cópia, conversão de vetor e comparação\n\n#### `lista.c`       \n- Implementação das funções de manipulação da lista encadeada\n\n#### `no.c`       \n- Implementação da criação e gerenciamento dos nós\n\n\n# Funcionalidades\n- ✅ **Inicialização** da lista encadeada (vazia)\n- ✅ **Inserir no início** - Adiciona elemento no início da lista\n- ✅ **Inserir no fim** - Adiciona elemento no final da lista\n- ✅ **Remover do início** - Remove elemento do início da lista\n- ✅ **Remover do fim** - Remove elemento do final da lista\n- ✅ **Verificação** se a lista está vazia\n- ✅ **Exibição** visual do conteúdo atual da lista\n- ✅ **Cálculo da média** dos elementos da lista\n- ✅ **Cópia** de uma lista para outra\n- ✅ **Conversão** de vetor para lista encadeada\n- ✅ **Comparação** entre duas listas\n- ✅ Alocação dinâmica de memória para cada novo elemento\n\n\n# Tecnologias\n\u003ctable align=\"center\"\u003e\n     \u003ctr\u003e\n        \u003cth\u003e\n            Linguagem\n        \u003c/th\u003e\n        \u003ctd\u003e\n            \u003cimg alt=\"C\" src=\"https://img.shields.io/badge/C-00599C?style=for-the-badge\u0026logo=c\u0026logoColor=white\"/\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e\n        \u003cth\u003e\n            IDE\n        \u003c/th\u003e\n        \u003ctd\u003e\n            \u003cimg alt=\"CLion\" src=\"https://img.shields.io/badge/CLion-000000?style=for-the-badge\u0026logo=clion\u0026logoColor=white\"/\u003e\n        \u003c/td\u003e\n     \u003c/tr\u003e\n     \u003ctr\u003e\n        \u003cth\u003e\n            Build System\n        \u003c/th\u003e\n        \u003ctd\u003e\n            \u003cimg alt=\"CMake\" src=\"https://img.shields.io/badge/CMake-064F8C?style=for-the-badge\u0026logo=cmake\u0026logoColor=white\"/\u003e\n        \u003c/td\u003e\n     \u003c/tr\u003e\n\u003c/table\u003e\n\n\n# Como executar o projeto\n\n### Opção 1: CLion (Recomendado)\n\n1. Clone este repositório:\n```bash\ngit clone https://github.com/pedro-Trovo/lista-encadeada\n```\n\n2. Abra o CLion e selecione **File → Open**\n\n3. Escolha a pasta do projeto `lista-encadeada`\n\n4. O CLion irá automaticamente:\n   - Detectar o arquivo `CMakeLists.txt`\n   - Executar o CMake\n   - Criar a configuração de build\n\n5. Clique no botão **▶️ (Run)** no canto superior direito\n\n6. O programa será executado e os resultados aparecerão no terminal integrado do CLion\n\n### Opção 2: Terminal com GCC\n\n1. Clone este repositório:\n```bash\ngit clone https://github.com/pedro-Trovo/lista-encadeada\n```\n\n2. Acesse a pasta do projeto:\n```bash\ncd lista-encadeada\n```\n\n3. Compile o projeto com gcc:\n```bash\ngcc -o lista src/main.c src/lista.c src/no.c -Iinclude\n```\n\n4. Execute o programa:\n```bash\n# Windows\nlista.exe\n\n# Linux/Mac\n./lista\n```\n\n### Opção 3: Terminal com CMake\n\n```bash\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake\n./lista\n```\n\n\n# Imagens do Projeto\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"terminal_resultado_parte1\" src=\"readme-img/resultado1.png\"\u003e\n  \u003cbr\u003e\n  \u003cem\u003eExecução da lista encadeada no terminal - Parte 1\u003c/em\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003cimg alt=\"terminal_resultado_parte2\" src=\"readme-img/resultado2.png\"\u003e\n  \u003cbr\u003e\n  \u003cem\u003eExecução da lista encadeada no terminal - Parte 2\u003c/em\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedro-trovo%2Flista-encadeada","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedro-trovo%2Flista-encadeada","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedro-trovo%2Flista-encadeada/lists"}