Estrutura de Dados. Diego Silveira Costa Nascimento
|
|
- Ana Lívia Belmonte Castelhano
- 6 Há anos
- Visualizações:
Transcrição
1 Estrutura de Dados Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte diego.nascimento@ifrn.edu.br 31 de agosto de 2017
2 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
3 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
4 Objetivos da Disciplina Consolidar os conhecimentos sobre programação previamente adquiridos; Identificar e desenvolver modelos matemáticos, determinando que classes de problemas podem ser resolvidos com o uso deles; Criar representações concretas dos objetos e desenvolver rotinas capazes de atuar sobre essas representações, de acordo com o modelo considerado; Fornecer domínio de alocação dinâmica de memória; Apresentar as principais estruturas de dados: lista, fila, pilha, árvores e tabelas de dispersão; Introduzir aspectos básicos da complexidade de algoritmos; Apresentar os principais processos de ordenação e pesquisa de dados. Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
5 Motivações em Estudar Estrutura de Dados Proporciona reúso de código; Diminui custos de desenvolvimento e manutenção; Melhora o desempenho do sistema; e Organiza as informações. Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
6 Definições Algoritmo É uma sequência finita e lógica de instruções ou passos, especificados em uma determinada linguagem, que mostram como resolver determinado problema. Estrutura de Dados É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente. Programa É uma expressão em linguagem formal inteligível por um computador (Algoritmos + Estruturas de dados). Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
7 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
8 Tipos de Dados Definição São combinações de valores em que uma variável pode armazenar. Importante Dependendo da linguagem de programação, o tipo de um dado é verificado diferentemente, de acordo com a análise léxica, sintática e semântica do compilador ou interpretador da linguagem. Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
9 Tipos de Dados em Python Numérico; Cadeia de caracteres; Lógico; Tupla; Lista; Conjunto; e Dicionário. Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
10 Tipo Numérico Definição Representa uma quantidade contável. Os tipos de dados numéricos podem ser: Inteiro; Real; e Complexo. Exemplos a = 3 b = 2.5 c = 2j Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
11 Operações com Tipo Numérico As operações possíveis são: + (Adição); - (Subtração); * (Multiplicação); / (Divisão); // (Divisão inteira); % (Resto); e ** (Potênciação) Exemplos a = b = 5 / 2 c = 3 * 2j d = 3 % 2 e = 4 ** 0.5 Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
12 Tipo Cadeia de Caracteres Definição Representa uma sequência de dígitos, letras e sinais. Exemplos a = ' Estrutura de Dados ' b = "Ní vel 2" c = '2 + 2 = 4' d = u'ol\xe1 ' Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
13 Operações com Tipo de Cadeia de Caracteres len (Tamanho da string); count (Conta quantas vezes uma caracter aparece); lower (Converte as letras para minúscula); upper (Converte as letras para maiúscula); replace (Substitui as letras por outra); split (Quebra uma string a partir dos espaços em branco); Exemplos a = len ('IFRN ') b = ' Estrutura de Dados '. count ( 'a') c = 'IFRN '. lower () d = 'natal '. upper () e = 'Casa '. replace ('a','@') f = ' Engenharia de Software '. split () Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
14 Tipo Lógico Definição Representa dois estados: verdadeiro e falso. Exemplos a = b = True False Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
15 Operações com Tipo Lógico not (Negação); and (E); or (Ou); Exemplos a = not True b = True and False c = True or False Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
16 Tipo Tupla Definição É uma sequência qualquer de objetos imutáveis separados por vírgulas, contidos entre parênteses. Exemplos nome_completo = ( 'João', 'da Silva ') Importante Não é possível aplicar operações em tuplas. Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
17 Tipo Lista Definição É uma sequência qualquer de objetos mutáveis separados por vírgulas, contidos entre colchetes. Exemplos l = [1, 1, 2, 3, 5, 8, 13, 21, 34] c = ['João', 'Pedro ', 'Maria ', 'Jos é'] matriz = [[2,3],[4,1]] Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
18 Operações com Tipo Lista append (Adiciona um item ao fim da lista); pop (Remove o item na posição dada e o devolve); e sort (Ordena os itens na própria). Exemplos a = [1, 1, 2] a. append (0) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
19 Tipo Conjunto Definição É uma coleção desordenada de elementos sem repetição. Exemplos vogais = set ([ 'a','e','i','o','u']) frutas = set ([ ' abacaxi ', 'uva ', ' laranja ', ' banana ']) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
20 Operações com Conjunto in (Verifica se um elemento existe); union (União entre os conjuntos); intersection (Interseção entre os conjuntos); e difference (Diferença entre os conjuntos). Exemplos a = set ([2,3,5,7,11]) b = set ([2,4,6,8]) a. union (b) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
21 Tipo Dicionário Definição É uma coleção de elementos indexadas por chaves. Exemplos uf = {'al ': ' Alagoas ', 'ce ': 'Cear á', 'rn ':'Rio Grande do Norte '} Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
22 Operações com Dicionários keys (Retorna um lista com as chaves); values (Retorna um lista com os valores); update (Autaliza o dicionário); e pop (Remove o item da chava dada e o devolve o valor). Exemplos uf = {'al ': ' Alagoas ', 'ce ': 'Cear á', 'rn ':'Rio Grande do Norte '} uf. update ({ 'sp ':'São Paulo '}) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
23 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
24 Ordenação Definição Uma ordenação consiste em colocar os elementos de um conjunto de dados de forma organizada (ascendente ou descendente) de acordo seus valores. Dentre as técnicas de ordenação mais conhecidas, temos: Ordenação por inserção (Insert Sort); Ordenação por seleção (Select Sort); Ordenação por flutuação (Bubble Sort); Ordenação por mistura (Merge Sort); e Ordenação rápida (Quick Sort). Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
25 Ordenação por Inserção Eficiente quando aplicado a um pequeno número de elementos; Percorre um vetor de elementos da esquerda para a direita; À medida que avança vai deixando os elementos mais à esquerda ordenados; e Exemplo Assemelha-se a ordenação de cartas de um jogo de baralho. valores = [5, 8, 9, 2, 1] for i in range (1, len ( valores )): aux = valores [i] j = i while (j > 0) and ( aux < valores [j -1]): valores [j] = valores [j - 1] j -= 1 valores [j] = aux print ( valores ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
26 Ordenação por Seleção Baseado em passar sempre o menor valor do vetor para a primeira posição; Exemplo Depois o de segundo menor valor para a segunda posição; e Assim é feito sucessivamente com os (n 1) elementos restantes. valores = [5, 8, 9, 2, 1] for i in range (0, len ( valores ) - 1): index_menor = i for j in range (i + 1, len ( valores )): if valores [j] < valores [ index_menor ]: index_menor = j if valores [ index_menor ] < valores [i]: valores [i], valores [ index_menor ] = valores [ index_menor ], valores [i] print ( valores ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
27 Ordenação por Flutuação A ideia é percorrer o vector diversas vezes; A cada passagem fazendo flutuar para o topo o maior elemento da sequência; e Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível. Exemplo valores = [5, 8, 9, 2, 1] for i in range (len ( valores ) - 1, 0, -1): for j in range (0, i): if ( valores [j] > valores [j + 1]): valores [j], valores [j + 1] = valores [j + 1], valores [j] print ( valores ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
28 Ordenação por Mistura Do tipo dividir-para-conquistar; Dividir: Dividir os dados em subsequências pequenas; e Conquistar: Classificar as metades recursivamente aplicando o merge sort. Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
29 Ordenação por Mistura Exemplo def merge_sort ( lista ): if len ( lista ) > 1: centro = len ( lista ) // 2 sublista_esquerda = lista [: centro ] sublista_direita = lista [ centro :] merge_sort ( sublista_esquerda ) merge_sort ( sublista_direita ) i = j = k = 0 while i < len ( sublista_esquerda ) and j < len ( sublista_direita ): if sublista_esquerda [i] < sublista_direita [j]: lista [k]= sublista_esquerda [i] i += 1 else : lista [k]= sublista_direita [j] j += 1 k += 1 while i < len ( sublista_esquerda ): lista [k]= sublista_esquerda [i] i += 1 k += 1 while j < len ( sublista_direita ): lista [k]= sublista_direita [j] j += 1 k += 1 Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
30 Ordenação por Mistura Exemplo valores = [5, 8, 9, 2, 1] merge_sort ( valores ) print ( valores ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
31 Ordenação Rápida Escolha um elemento da lista, denominado pivô; Rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele; Ao fim do processo o pivô estará em sua posição final e haverá duas sublistas não ordenadas; e Recursivamente ordena as sublistas de elementos menor e a maior. Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
32 Ordenação Rápida Exemplo def quick_sort ( lista, index_inicio=none, index_fim=none ): if index_inicio == None and index_fim == None : index_inicio = 0 index_fim = len ( lista ) - 1 pivo = lista [( index_inicio + index_fim ) // 2] i = index_inicio j = index_fim while i < j: while lista [i] < pivo : i += 1 while lista [j] > pivo : j -= 1 if i < j: lista [i], lista [j] = lista [j], lista [i] i += 1 j -= 1 if j > index_inicio : quick_sort ( lista, index_inicio, j) if i < index_fim : quick_sort ( lista, j+1, index_fim ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
33 Ordenação Rápida Exemplo valores = [5, 8, 9, 2, 1] quick_sort ( valores ) print ( valores ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
34 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
35 Lista Ligada Definição É uma estrutura de dados que implementa uma coleção de dados ligados (encadeados) de forma dinâmica em um único sentido. Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
36 Classe Elemento Código class Elemento : def init (self, nome ): self. nome = nome self. proximo = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
37 Classe Lista Ligada Código class ListaLigada : def init ( self ): self. inicio = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
38 Método para Adicionar Código def adicionar (self, nome ): novo = Elemento ( nome ) if self. inicio == None : self. inicio = novo else : elemento = self. inicio while elemento. proximo!= None : elemento = elemento. proximo elemento. proximo = novo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
39 Método para Exibir Código def exibir ( self ): elemento = self. inicio print ( elemento.nome ) while elemento. proximo!= None : elemento = elemento. proximo print ( elemento.nome ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
40 Método para Remover Código def remover (self, nome ): elemento = self. inicio if elemento. nome == nome : self. inicio = elemento. proximo else : while elemento. proximo!= None : if elemento. proximo.nome == nome : elemento. proximo = elemento. proximo. proximo else : elemento = elemento. proximo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
41 Usando Lista Ligada Código lista = ListaLigada () lista. adicionar ( 'João') lista. adicionar ( 'Pedro ') lista. adicionar ( ' Marcos ') lista. adicionar ( 'Lucas ') lista. remover ( 'Pedro ') lista. exibir () Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
42 Listas Duplamente Ligada Definição É uma estrutura de dados que implementa uma coleção de dados ligados de forma dinâmica em sentido duplo. Duplamente Ligada Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
43 Classe Elemento Código class Elemento : def init (self, nome ): self. anterior = None self. nome = nome self. proximo = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
44 Classe Lista Duplamente Ligada Código class ListaDuplamenteLigada : def init ( self ): self. inicio = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
45 Método para Adicionar Código def adicionar (self, nome ): novo = Elemento ( nome ) if self. inicio == None : self. inicio = novo else : elemento = self. inicio while elemento. proximo!= None : elemento = elemento. proximo elemento. proximo = novo novo. anterior = elemento Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
46 Método para Exibir Código def exibir ( self ): elemento = self. inicio print ( elemento.nome ) while elemento. proximo!= None : elemento = elemento. proximo print ( elemento.nome ) while elemento. anterior!= None : elemento = elemento. anterior print ( elemento.nome ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
47 Método para Remover Código def remover (self, nome ): elemento = self. inicio if elemento. nome == nome : self. inicio = elemento. proximo self. inicio. anterior = None else : elemento = elemento. proximo while elemento!= None : if elemento. nome == nome : if elemento. proximo!= None : elemento. anterior. proximo = elemento. proximo elemento. proximo. anterior = elemento. anterior else : elemento. anterior. proximo = None elemento = elemento. proximo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
48 Usando Lista Duplamente Ligada Código lista = ListaDuplamenteLigada () lista. adicionar ( 'João') lista. adicionar ( 'Pedro ') lista. adicionar ( ' Marcos ') lista. adicionar ( 'Lucas ') lista. remover ( 'Pedro ') lista. exibir () Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
49 Lista Circular Definição É uma estrutura de dados que implementa uma coleção de dados ligados de forma dinâmica em um único sentido, no qual o final da lista corresponde o início da própria lista. Circular Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
50 Método para Adicionar Código def adicionar (self, nome ): novo = Elemento ( nome ) if self. inicio == None : self. inicio = novo novo. proximo = self. inicio else : elemento = self. inicio while elemento. proximo.nome!= self. inicio.nome : elemento = elemento. proximo elemento. proximo = novo novo. proximo = self. inicio Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
51 Método para Exibir Código def exibir ( self ): elemento = self. inicio print ( elemento.nome ) while elemento. proximo.nome!= self. inicio.nome : elemento = elemento. proximo print ( elemento.nome ) print ( elemento. proximo.nome ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
52 Método para Remover Código def remover (self, nome ): elemento = self. inicio if elemento. nome == nome : self. inicio = elemento. proximo while elemento. proximo.nome!= nome : elemento = elemento. proximo elemento. proximo = self. inicio else : while elemento. proximo.nome!= nome : elemento = elemento. proximo elemento. proximo = elemento. proximo. proximo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
53 Usando Lista Circular Código lista = ListaCircular () lista. adicionar ( 'João') lista. adicionar ( 'Pedro ') lista. adicionar ( ' Marcos ') lista. adicionar ( 'Lucas ') lista. remover ( 'João') lista. exibir () Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
54 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
55 Pilha Definição É uma estrutura de dados baseada no princípio LIFO (Last In, First Out), na qual os dados que foram inseridos primeiros na pilha serão os últimos a serem removidos. Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
56 Classe Pilha Código class Pilha : def init ( self ): self. topo = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
57 Método para Empilhar Código def empilhar (self, nome ): novo = Elemento ( nome ) if self. topo == None : self. topo = novo else : novo. proximo = self.topo self. topo = novo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
58 Método para Desempilhar Código def desempilhar ( self ): if self. topo == None : return None else : elemento = self. topo self.topo = elemento. proximo return elemento. nome Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
59 Exemplo Código pilha = Pilha () pilha. empilhar ( 'João') pilha. empilhar ( 'Lucas ') pilha. empilhar ( 'Pedro ') pilha. empilhar ( 'Maria ') nome = pilha. desempilhar () print ( nome ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
60 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
61 Fila Definição É uma estrutura de dados baseada no princípio FIFO (First In, First Out), em que os elementos que foram inseridos no início são os primeiros a serem removidos. Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
62 Classe Fila Código class Fila : def init ( self ): self. inicio = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
63 Método para Enfileirar Código def enfileirar (self, nome ): novo = Elemento ( nome ) if self. inicio == None : self. inicio = novo else : elemento = self. inicio while elemento. proximo!= None : elemento = elemento. proximo elemento. proximo = novo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
64 Método para Desenfileirar Código def desenfileirar ( self ): if self. inicio == None : return None else : elemento = self. inicio self. inicio = elemento. proximo return elemento. nome Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
65 Usando Fila Código fila = Fila () fila. enfileirar ( 'João') fila. enfileirar ( 'Pedro ') fila. enfileirar ( 'Lucas ') fila. enfileirar ( 'Maria ') nome = fila. desenfileirar () print ( nome ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
66 Fila com Prioridade Definição É uma estrutura de dados em que os elementos são inseridos em ordem de prioridade. Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
67 Classe Elemento Código class Elemento : def init (self,nome, prioridade ): self. nome = nome self. prioridade = prioridade self. proximo = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
68 Classe Fila com Prioridade Código class FilaPrioridade : def init ( self ): self. inicio = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
69 Método para Enfileirar Código def enfileirar (self,nome, prioridade ): novo = Elemento (nome, prioridade ) if self. inicio == None : self. inicio = novo elif self. inicio. prioridade >= novo. prioridade : novo. proximo = self. inicio self. inicio = novo else : elemento = self. inicio while ( elemento. proximo!= None and elemento. proximo. prioridade < novo. prioridade ): elemento = elemento. proximo novo. proximo = elemento. proximo elemento. proximo = novo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
70 Método para Desenfileirar Código def desenfileirar ( self ): if self. inicio == None : return None else : elemento = self. inicio self. inicio = elemento. proximo return elemento. nome Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
71 Usando Fila Código fila = FilaPrioridade () fila. enfileirar ( 'João', 3) fila. enfileirar ( 'Pedro ', 2) fila. enfileirar ( 'Lucas ', 1) fila. enfileirar ( 'Maria ', 0) nome = fila. desenfileirar () print ( nome ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
72 Ementa do Curso 1 Introdução 2 Tipo de Dados 3 Ordenação 4 Lista 5 Pilha 6 Fila 7 Árvore Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
73 Árvore Definição É uma estrutura de dados em que cada elemento tem um ou mais elementos associados. Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
74 Classe Nó Código class No: def init (self, valor ): self. valor = valor self. ramoesquerdo = None self. ramodireito = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
75 Classe Árvore Binária Código class ArvoreBinaria : def init ( self ): self. raiz = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
76 Inserir Nó Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
77 Método Inserir Código def inserir (self, valor ): if self. raiz == None : self.raiz = No( valor ) else : self. inserir (valor, self.raiz ) def inserir (self, valor, no ): if no. valor > valor : if no. ramoesquerdo == None : no. ramoesquerdo = No( valor ) else : self. inserir (valor, no. ramoesquerdo ) else : if no. ramodireito == None : no. ramodireito = No( valor ) else : self. inserir (valor, no. ramodireito ) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
78 Excluir um Nó Folha Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
79 Excluir um Nó com uma Subárvore Ilustração Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
80 Excluir um Nó com duas Subárvores Ilustração: Caso 1 Ilustração: Caso 2 Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
81 Método Excluir Código def remover (self, valor ): self. remover (None, self.raiz, valor ) def remover (self, no_pai, no, valor ): if no!= None : if no. valor!= valor : if no. valor > valor : self. remover (self, no, no. ramoesquerdo, valor ) else : self. remover (self, no, no. ramodireito, valor ) else : # Remover nó folha if no. ramoesquerdo == None and no. ramodireito == None : if no. valor == self.raiz. valor : self. raiz = None elif no_pai. ramodireito. valor == no. valor : no_pai. ramodireito = None else : no_pai. ramoesquerdo = None Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
82 Método Excluir Código # Remover nó com uma sub á rvore elif no. ramoesquerdo == None or no. ramodireito == None : if no. ramoesquerdo == None : if no. valor == self.raiz. valor : self.raiz = no. ramodireito elif no_pai. ramoesquerdo. valor == no. valor : no_pai. ramoesquerdo = no. ramodireito else : no_pai. ramodireito = no. ramodireito else : if no. valor == self.raiz. valor : self.raiz = no. ramoesquerdo elif no_pai. ramoesquerdo == no. valor : no_pai. ramoesquerdo = no. ramoesquerdo else : no_pai. ramodireito = no. ramoesquerdo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
83 Método Excluir Código # Remover nó com duas sub á rvores else : nodo = no. ramoesquerdo anterior = no while nodo. ramodireito!= None : anterior = nodo nodo = nodo. ramodireito if nodo. ramoesquerdo == None : anterior. ramodireito = None # É uma folha else : anterior. ramodireito = nodo. ramoesquerdo if no. valor == self.raiz. valor : self. raiz = nodo nodo. ramoesquerdo = no. ramoesquerdo nodo. ramodireito = no. ramodireito elif no_pai. ramoesquerdo. valor == no. valor : no_pai. ramoesquerdo = nodo else : no_pai. ramodireito = nodo Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
84 Usando Árvore Código arvore = ArvoreBinaria () arvore. inserir (7) arvore. inserir (4) arvore. inserir (9) arvore. inserir (2) arvore. inserir (5) arvore. inserir (10) arvore. inserir (8) Diego S. C. Nascimento (IFRN) Estrutura de Dados 31 de agosto de / 84
Fundamentos da Programação
Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada
Leia maisLinguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings
Processamento Estatístico da Linguagem Natural Aula 7 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/peln/ Linguagem Python Introdução Características de Python Rodando
Leia maisAlgoritmos e Estrutura de Dados Aula 08 Pilhas
Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte! Dados e Tipos de Dados Um dado é uma informação
Leia maisEstrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Leia maisMódulo: PYTHON. Felipe Oliveira
Módulo: PYTHON Felipe Oliveira Tudo Blzinha? https://pip.pypa.io/en/stable/installing/ Ctrl + S Variáveis Palavras reservadas! Operadores Aritméticos Operadores básicos Operação Operador adição +
Leia maisProva Substitutiva PMR3201 1o. semestre 2018 Prof. Thiago Martins
Prova Substitutiva PMR301 1o. semestre 018 Prof. Thiago Martins Instruções Escreva o nome e o número USP na folha de papel almaço. Numere cada página. Indique o total de páginas na primeira página. Os
Leia maisAlgoritmos e Estrutura de Dados Aula 02 Listas em Python
Algoritmos e Estrutura de Dados Aula 02 Listas em Python Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte! 2 1 Dados e Tipos de Dados Um dado
Leia maisBubble Sort. Tempo total O(n 2 )
Bubble Sort Considere uma seqüência de n elementos que se deseja ordenar. O método da bolha resolve esse problema através de várias passagens sobre a seqüência Não é um algoritmo eficiente, é estudado
Leia maisEstruturas de Dados em Python
Estruturas de Dados em Python Carlos Camarão de Março de 7 Introdução Na segunda parte do curso vamos aprender a programar com estruturas (ou coleções) de dados, em Python. Python é uma linguagem orientada
Leia maisEstrutura de Dados: Aula 3 - Linguagem C
Estrutura de Dados: Aula 3 - Linguagem C Uso de Memória Alocação de memória Estática Ocorre em tempo de compilação no momento em que se define uma variável ou estrutura é necessário que se definam seu
Leia maisEstrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática
Estrutura de Dados Algoritmos de Ordenação Prof. Othon M. N. Batista Mestre em Informática Roteiro Introdução Ordenação por Inserção Insertion Sort Ordenação por Seleção Selection Sort Ordenação por Bolha
Leia maisEstruturas de Dados Pilhas, Filas, Listas
Estruturas de Dados Pilhas, Filas, Listas Fabio Gagliardi Cozman Thiago Martins PMR3201 Escola Politécnica da Universidade de São Paulo Estruturas de Dados Pilhas, Filas, Listas Introdução Estruturas de
Leia maisAula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler
Aula 7 e 8 Filas e suas Aplicações Prof. Leticia Winkler 1 Definição de Fila (Queue) São estruturas de dados do tipo FIFO (first-in first-out) - o primeiro elemento a ser inserido, será o primeiro a ser
Leia maisCIC 110 Análise e Projeto de Algoritmos I
CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá sort AULA 02 Ordenação A classificação é um problema de design de algoritmo fundamental.
Leia maisFundamentos da Programação
Fundamentos da Programação Segundo Teste 18 de Junho de 2014 15:00 16:30 1. (1.0) Diga quais as fases por que passa o desenvolvimento de um programa no modelo estudado e o que se faz em cada uma delas.
Leia maisBit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256
Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 informações diferentes; Tipos Primitivos são implementados nas
Leia maisS U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas
ESTRUTURA DE DADOS DEBORAH FERREIRA S U M Á R I O Definição de Estrutura de Dados 1 Vetores 2 Listas Ligadas 4 Pilhas 6 Filas 8 D E F I N I Ç Ã O D E E S T R U T U R A D E D A D O S Estruturas de dados
Leia maisMÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2
MÉTODOS DE ORDENAÇÃO Introdução à Programação SI2 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar
Leia maisAlgoritmos e estrutura de dados
Algoritmos e estrutura de dados Listas Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Listas Listas encadeadas
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Pilhas e listas Estruturas de Dados 2 Ordenação (Classificação) Rearranjar um conjunto de objetos Ordem ascendente
Leia maisEdital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisAlgoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1
Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação
Leia maisAula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias
SCC 12 - Introdução à Programação para Engenharias Aula de hoje Introdução Sequências Classes e objetos Listas Listas Operações em listas Pilhas e filas Professor: André C. P. L. F. de Carvalho, ICMC-USP
Leia maisDepartamento de Engenharia Rural Centro de Ciências Agrárias. Programação I
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Algoritmos de busca Basicamente podem ser citadas duas estratégias para procurar (ou buscar) algo em uma coleção de dados: Busca
Leia maisFundamentos de Programação em Python
Fundamentos de Programação em Python Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte diego.nascimento@ifrn.edu.br 23 de junho de 2017 Ementa do
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisPilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode
Pilhas e Filas Pilhas Uma pilha é uma estrutura linear de dados que pode ser acessada somente por uma de suas extremidades. Uma pilha é uma lista LIFO (do inglês last-in-first out) o último a entrar é
Leia maisÁrvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia maisEstruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
Leia maisAlgoritmos de Ordenação em LISP
Algoritmos de Ordenação em LISP Léo Willian Kölln 8 de Agosto de 2006 Curso de Ciências da Computação Programação Funcional - INE5363 INE - Departamento de Informática e Estatística CTC - Centro Tecnológico
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Segundo Teste 18 de Janeiro de 2013 09:00 10:30 1. (2.0) Escolha a única resposta incorrecta para as seguintes questões. Cada resposta certa vale 1 valor e cada resposta
Leia maisProva de Recuperação PMR3201 1o. semestre 2017 Prof. Thiago Martins
Prova de Recuperação PMR3201 1o. semestre 2017 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Numere cada página. Indique o total de páginas na primeira página.
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,
Leia maisSequências - Tuplas. Sequências - Tuplas
Sequências - Tuplas Sequência de valores separados por vírgulas. Elementos podem ser de tipos distintos. Endereçáveis, com índice 0 para o primeiro elemento Exemplos : >>> tupla="computadores e Programacao",
Leia maisEdital de Seleção 016/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 016/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisPython Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema
Python Listas e Strings Prof. Paulo Henrique Ribeiro Gabriel (Com base no material do Prof. André Backes) Listas Por que usar listas? Listas As variáveis declaradas até agora são capazes de armazenar um
Leia maisCURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI
CURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI O QUE SÃO ALGORITMOS DE ORDENAÇÃO? São algoritmos que organizam
Leia maisCapítulo 8: Abstrações de dados
Capítulo 8: Abstrações de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Estruturas de dados básicas Matriz homogênea Matriz
Leia maisEdital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisAula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler
Aula 5 e 6 Pilhas e suas Aplicações prof Leticia Winkler 1 Definição de Pilha (Stack) São estruturas de dados do tipo LIFO (last-in first-out) - o último elemento a ser inserido, será o primeiro a ser
Leia maisÁrvores. Estruturas de Dados. Prof. Vilson Heck Junior
Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são
Leia maisProf. Jesus José de Oliveira Neto
Prof. Jesus José de Oliveira Neto É uma das estruturas de dados mais simples A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo. Assim, quando um elemento novo
Leia maisAula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias
SCC 12 - Introdução à Programação para Engenharias Tipos de Dados e Variáveis Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes
Leia maisComputação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18
Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - 1/ 18 Considere que você precisa fazer uma função que guarde o nome e o telefone de seus amigos. Sua função também deve permitir a consulta
Leia maisInformática Parte 18 Prof. Márcio Hunecke
Escriturário Informática Parte 18 Prof. Márcio Hunecke Informática ORDENAÇÃO (MÉTODOS DA BOLHA, ORDENAÇÃO POR SELEÇÃO, ORDENAÇÃO POR INSERÇÃO, LISTA ENCADEADA, PILHA, FILA, NOÇÕES SOBRE ÁRVORE BINÁRIA)
Leia maisESTRUTURA DE DADOS (TCC )
ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Cristina Boeres 2 Estrutura de Dados! Listas lineares! estática! dinâmicas! Como manipulá-las:! pilhas! filas Listas Lineares 3! fácil manipulação! agrupa
Leia maisUniversidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec
Universidade Federal do ABC Avaliação: Prova 02 Disciplina: BC1424 - Algoritmos e Estruturas de Dados I Turma: Noturno Professor: Jesús P. Mena-Chalco Data: 03/05/2016 Nome completo: RA: Instruções para
Leia maisAula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler
Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma
Leia maisFilas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014
Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br
Leia maisALGORITMOS DE ORDENAÇÃO
ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,
Leia maisALGORITMOS DE ORDENAÇÃO RECURSIVOS
1/14 ALGORITMOS DE ORDENAÇÃO RECURSIVOS Ordenação rápida ( Quicksort ) 2/14 Ordenação rápida ( Quicksort ) Ideia - Baseia-se num princípio muito simples que, quando aplicado recursivamente, acaba por ordenar
Leia maisMÉTODOS DE ORDENAÇÃO. Introdução à Programação SI1
MÉTODOS DE ORDENAÇÃO Introdução à Programação SI1 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar
Leia maisOrdenação: MergeSort. Prof. Túlio Toffolo BCC202 Aula 14 Algoritmos e Estruturas de Dados I
Ordenação: MergeSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 14 Algoritmos e Estruturas de Dados I DIVISÃO E CONQUISTA Motivação É preciso revolver um problema com uma entrada grande
Leia maisEstruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Leia maisAlgoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Leia maisEdital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
Leia maisFilas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013
Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisOrdenação por Intercalação Métodos de Ordenação Parte 4
Ordenação por Intercalação Métodos de Ordenação Parte 4 SCC-601 Introdução à Ciência da Computação II Rosane Minghim 2010 Revisando... Também chamado merge-sort Idéia básica: dividir para conquistar Um
Leia maisLinguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo
Linguagem Python Inteligência Artificial Aula 7 Profª Bianca Zadrozny http://www.ic.uff.br/~bianca/ia Introdução Características de Python Rodando programas Módulos Tipos básicos Números e variáveis Strings
Leia maisMÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA. George Gomes Cabral
MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA George Gomes Cabral MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA Métodos Elementares Classificação por Trocas Método da Bolha Bubblesort Método de Partição
Leia maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Revisão [CLRS, Cap. 7-10] 2014/2015 Contexto Revisão [CLRS, Cap.1-13] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.21-26] Algoritmos elementares Árvores
Leia maisMétodos de Ordenação Parte 4
Métodos de Ordenação Parte 4 Introdução à Ciência de Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e Prof. Thiago A. S. Pardo 1 Ordenação por Intercalação Revisando...
Leia maisOrdenação por Seleção Métodos de Ordenação Parte 3
Ordenação por Seleção Métodos de Ordenação Parte SCC-6 Introdução à Ciência da Computação II Rosane Minghim Idéia básica: os elementos são selecionados e dispostos em suas posições corretas Seleção direta
Leia mais1. Listas sequenciais versus listas ligadas. Lista sequencial
Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista
Leia maisCapítulo 20. Estruturas de Dados Dinâmicas. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 20 Estruturas de Dados Dinâmicas Objetivos do Capítulo Caracterizar as estruturas de dados dinâmicas. Apresentar implementações para três diferentes estruturas de dados: as pilhas, as filas e
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Métodos de pesquisa e classificação de dados (continuação) Estruturas de Dados 2 Algoritmo de busca Recebe como argumento
Leia maisListas, conjuntos e dicionários
Listas, conjuntos e dicionários Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisCapacitação em Linguagem C Parte 2
Capacitação em Linguagem C Parte 2 Andrey Souto Maior Giuseppe Portolese Universidade Estadual de Maringá - Centro de Tecnologia Departamento de Informática 22 de outubro de 2015 Sumário I Tipos abstratos
Leia maisAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:
Leia maisProva 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins
Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore
Leia maisAnálise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 7-10 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, recorrências, etc. Exemplos de algoritmos Ordenação Procura Selecção
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Primeiro Teste 29 de Março de 2014 09:00 10:30 1. (1.0) O que é um processo computacional? Qual a relação entre um programa e um processo computacional? Um processo
Leia maisProgramação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO
Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados
Leia maisArquivos Sequenciais. Estruturas de Dados II Vanessa Braganholo
Arquivos Sequenciais Estruturas de Dados II Vanessa Braganholo Arquivos Sequenciais } Pq arquivos sequenciais? Relembrando } Relembrando: uma tabela ou arquivo é um conjunto de registros que possuem a
Leia maisListas e Tuplas. Vanessa Braganholo
Listas e Tuplas Vanessa Braganholo vanessa@ic.uff.br Exemplo Motivacional } Programa para auxiliar a escrever Parabéns! nas melhores provas de uma disciplina com 3 alunos } Ler os nomes e as notas de 3
Leia maisProgramação Introdução
PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,
Leia maisAlgoritmos de Ordenação
Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca
Leia maisCompiladores. Análise Léxica
Compiladores Análise Léxica Cristiano Lehrer, M.Sc. Introdução (1/3) Análise léxica é a primeira fase do compilador. A função do analisador léxico, também denominado scanner, é: Fazer a leitura do programa
Leia maisAVALIAÇÃO DE CONHECIMENTO ESPECÍFICO
AVALIAÇÃO DE CONHECIMENTO ESPECÍFICO PROGRAMA DE PÓS- GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO 01. Toda arvore binária possui as seguintes propriedades: I. Todos os nós de uma sub- árvore direita são maiores
Leia maisÁrvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 09 Algoritmos de Ordenação Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída: conjunto de itens
Leia maisAlgoritmos e estrutura de dados
Algoritmos e estrutura de dados Introdução Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo A linguagem Python
Leia maisO Problema da Ordenação Métodos de Ordenação Parte 1
Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD
Leia maisALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão
UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da
Leia maisOrdenação e Pesquisa
Ordenação e Pesquisa Luís Lopes DCC-FCUP Estruturas de Dados Pesquisa de Informação A pesquisa eficiente de informação é extremamente relevante, seja: num catálogo indexado por uma relação de ordem, e.g.
Leia maisPlano de Aula - Lógica de Programação - cód Horas/Aula
Plano de Aula - Lógica de Programação - cód. 6133-16 Horas/Aula Aula 1 Capítulo 1 - Introdução Aula 2 Continuação do Capítulo 1 - Introdução Capítulo 2 - Diagrama de Bloco Aula 3 Capítulo 3 - Dados Capítulo
Leia maisEderson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de
Leia maisÁrvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Leia maisIntrodução à Programação / Programação I
Introdução à Programação / Programação I Aula 9: Cadeias de caracteres Rita P. Ribeiro 2017/2018 Departamento de Ciência de Computadores Nesta aula 1. Cadeias de caracteres 2. Exemplo: a cifra de César
Leia maisIntrodução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01
Leia maisTECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 3
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 3 1 Agenda Estrategias de Projeto Algoritmos Refinamentos Sucessivos Força Bruta Dividir e conquistar Bibliografia
Leia maisMétodos de ordenação. Bubble sort:
Métodos de ordenação Bubble sort: O método de ordenação por bubble sort ou conhecido como bolha consiste em compara dados armazenados em um vetor de tamanho qualquer, comparando cada elemento de uma posição
Leia maisIntrodução à Programação / Programação I
Introdução à Programação / Programação I Aula 10: Listas e tuplos Rita P. Ribeiro 2017/2018 Departamento de Ciência de Computadores Nesta aula 1. Listas 2. Tuplos INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO
Leia maisArvores binárias. Fonte: https://www.tumblr.com/ PF 14 pf/algoritmos/aulas/bint.html
AULA 25 Arvores binárias Fonte: https://www.tumblr.com/ PF 14 http://www.ime.usp.br/ pf/algoritmos/aulas/bint.html Mais tabela de símbolos Uma tabela de símbolos (= symbol table = dictionary) é um conjunto
Leia maisIntrodução à Programação
Introdução à Programação Aula 10: Listas e tuplos Rita P. Ribeiro 2016/2017 Departamento de Ciência de Computadores Nesta aula 1. Listas 2. Tuplos INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 1 Listas
Leia maisVariáveis, Tipos de Dados e Operadores
! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da memória
Leia mais