0% acharam este documento útil (0 voto)
14 visualizações8 páginas

Estrutura de Dados Java Incrementado

O documento aborda a implementação de estruturas de dados em Java, incluindo listas, pilhas, filas, árvores e grafos, com explicações e exemplos de código. Cada estrutura é detalhada com suas características e métodos de implementação, além de atividades práticas para reforçar o aprendizado. O conteúdo é voltado para iniciantes e intermediários que desejam aprofundar seus conhecimentos em estruturas de dados.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações8 páginas

Estrutura de Dados Java Incrementado

O documento aborda a implementação de estruturas de dados em Java, incluindo listas, pilhas, filas, árvores e grafos, com explicações e exemplos de código. Cada estrutura é detalhada com suas características e métodos de implementação, além de atividades práticas para reforçar o aprendizado. O conteúdo é voltado para iniciantes e intermediários que desejam aprofundar seus conhecimentos em estruturas de dados.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Estrutura de Dados em Java - Do Básico ao Avançado

1. Introdução às Estruturas de Dados

Estruturas de dados são formas organizadas de armazenar e gerenciar dados de forma eficiente. Em Java,

podemos implementar estruturas como listas, pilhas, filas, árvores e grafos.

Essas estruturas são fundamentais para o desenvolvimento de algoritmos eficientes e para a resolução de

problemas complexos.

Vamos explorar cada estrutura em detalhes, com exemplos em Java e atividades para prática.

2. Listas (Simples, Duplamente Encadeadas)

As listas são estruturas de dados lineares que armazenam elementos em sequência. Existem diversos tipos

de listas:

- Lista Simplesmente Encadeada: Cada elemento aponta para o próximo.

- Lista Duplamente Encadeada: Cada elemento possui um ponteiro para o próximo e para o anterior.

Exemplo de Lista Simples em Java:

class Node {

int data;

Node next;
Estrutura de Dados em Java - Do Básico ao Avançado

Node(int data) {

this.data = data;

this.next = null;

class LinkedList {

Node head;

void add(int data) {

Node newNode = new Node(data);

if (head == null) {

head = newNode;

} else {

Node current = head;

while (current.next != null) {

current = current.next;

current.next = newNode;

3. Pilhas (Stacks)
Estrutura de Dados em Java - Do Básico ao Avançado

A pilha é uma estrutura de dados linear que segue o princípio LIFO (Last In, First Out). Os elementos são

adicionados e removidos do topo da pilha.

Exemplo de implementação em Java:

class Stack {

int top = -1;

int[] stack = new int[100];

void push(int value) {

if (top < stack.length - 1) {

stack[++top] = value;

int pop() {

if (top >= 0) {

return stack[top--];

return -1;

}
Estrutura de Dados em Java - Do Básico ao Avançado

4. Filas (Queues)

A fila é uma estrutura de dados linear que segue o princípio FIFO (First In, First Out). Os elementos são

inseridos no final e removidos do início.

Exemplo de implementação em Java:

class Queue {

int front = 0, rear = 0;

int[] queue = new int[100];

void enqueue(int value) {

queue[rear++] = value;

int dequeue() {

return queue[front++];

5. Árvores Binárias
Estrutura de Dados em Java - Do Básico ao Avançado

Árvores são estruturas hierárquicas compostas por nós. Cada nó pode ter filhos e um pai.

- Árvore Binária: Cada nó possui no máximo dois filhos.

- Árvore Binária de Busca (BST): Os nós à esquerda são menores e à direita são maiores que o nó pai.

Exemplo de implementação em Java:

class TreeNode {

int data;

TreeNode left, right;

TreeNode(int data) {

this.data = data;

this.left = null;

this.right = null;

class BinaryTree {

TreeNode root;

void insert(int value) {

root = insertRecursive(root, value);


Estrutura de Dados em Java - Do Básico ao Avançado

TreeNode insertRecursive(TreeNode node, int value) {

if (node == null) {

return new TreeNode(value);

if (value < node.data) {

node.left = insertRecursive(node.left, value);

} else {

node.right = insertRecursive(node.right, value);

return node;

6. Grafos

Grafos são estruturas compostas por vértices e arestas. Eles podem ser representados de várias formas:

- Lista de Adjacência: Cada vértice possui uma lista de nós conectados.

- Matriz de Adjacência: Uma matriz NxN onde cada posição indica a existência de uma aresta.

Exemplo de implementação em Java:


Estrutura de Dados em Java - Do Básico ao Avançado

import java.util.*;

class Graph {

private int V;

private LinkedList<Integer>[] adj;

Graph(int V) {

this.V = V;

adj = new LinkedList[V];

for (int i = 0; i < V; i++) {

adj[i] = new LinkedList<>();

void addEdge(int v, int w) {

adj[v].add(w);

7. Atividades

1. Implemente uma lista duplamente encadeada em Java.

2. Crie uma pilha que armazene caracteres e permita visualizar o topo.


Estrutura de Dados em Java - Do Básico ao Avançado

3. Desenvolva uma fila circular com capacidade fixa de 10 elementos.

4. Crie um método que insira elementos em uma árvore BST e outro que realize a travessia em ordem.

5. Implemente um grafo com 5 vértices e realize a busca em profundidade (DFS).

8. Gabarito das Atividades

1. A lista duplamente encadeada terá um ponteiro prev e next em cada nó.

2. A pilha de caracteres pode utilizar um array de chars e métodos push, pop e peek.

3. A fila circular deve ajustar os ponteiros front e rear de forma circular.

4. A inserção em uma BST segue a lógica de comparação; a travessia in-order segue a ordem esquerda,

raiz, direita.

5. A DFS pode ser implementada utilizando pilhas ou recursão.

Você também pode gostar