Menu English Ukrainian Russo Início

Biblioteca técnica gratuita para amadores e profissionais Biblioteca técnica gratuita


Информатика и информационные технологии. Графы (конспект лекций)

Notas de aula, folhas de dicas

Diretório / Notas de aula, folhas de dicas

Comentários do artigo Comentários do artigo

Índice (expandir)

PALESTRA No. 9. Estruturas de dados em forma de árvore

1. Estruturas de Dados em Árvore

Uma estrutura de dados em forma de árvore é um conjunto finito de elementos-nós entre os quais existem relações - a conexão entre a fonte e o gerado.

Se usarmos a definição recursiva proposta por N. Wirth, então uma estrutura de dados de árvore com tipo base t é uma estrutura vazia ou um nó do tipo t, com o qual um conjunto finito de estruturas de árvore com tipo base t, chamado subárvores, é associado.

A seguir, damos as definições usadas ao operar com estruturas em árvore.

Se o nó y estiver localizado diretamente abaixo do nó x, então o nó y é chamado de descendente imediato do nó x, e x é o ancestral imediato do nó y, ou seja, se o nó x está no i-ésimo nível, então o nó y é correspondentemente localizado em (i + 1) - o nível.

O nível máximo de um nó de árvore é chamado de altura ou profundidade da árvore. Um ancestral não possui apenas um nó da árvore - sua raiz.

Os nós de árvore que não têm filhos são chamados de nós de folha (ou folhas de árvore). Todos os outros nós são chamados de nós internos. O número de filhos imediatos de um nó determina o grau desse nó, e o grau máximo possível de um nó em uma determinada árvore determina o grau da árvore.

Ancestrais e descendentes não podem ser intercambiados, ou seja, a conexão entre o original e o gerado atua apenas em uma direção.

Se você for da raiz da árvore para algum nó específico, o número de ramos da árvore que serão percorridos nesse caso é chamado de comprimento do caminho para esse nó. Se todos os ramos (nós) de uma árvore são ordenados, então a árvore é dita ordenada.

Árvores binárias são um caso especial de estruturas de árvore. São árvores em que cada filho tem no máximo dois filhos, chamados de subárvores esquerda e direita. Assim, uma árvore binária é uma estrutura de árvore cujo grau é dois.

A ordenação de uma árvore binária é determinada pela seguinte regra: cada nó tem seu próprio campo de chave, e para cada nó o valor da chave é maior que todas as chaves em sua subárvore esquerda e menor que todas as chaves em sua subárvore direita.

Uma árvore cujo grau é maior que dois é chamada fortemente ramificada.

2. Operações em árvores

Além disso, consideraremos todas as operações em relação às árvores binárias.

I. Construção de árvores

Apresentamos um algoritmo para construir uma árvore ordenada.

1. Se a árvore estiver vazia, os dados serão transferidos para a raiz da árvore. Se a árvore não estiver vazia, um de seus ramos desce de tal forma que a ordem da árvore não seja violada. Como resultado, o novo nó se torna a próxima folha da árvore.

2. Para adicionar um nó a uma árvore já existente, você pode usar o algoritmo acima.

3. Ao excluir um nó da árvore, você deve ter cuidado. Se o nó a ser removido for uma folha ou tiver apenas um filho, a operação é simples. Se o nó a ser excluído tiver dois descendentes, será necessário encontrar um nó entre seus descendentes que possa ser colocado em seu lugar. Isso é necessário devido à exigência de que a árvore seja encomendada.

Você pode fazer isso: troque o nó a ser removido pelo nó com o maior valor de chave na subárvore esquerda ou com o nó com o menor valor de chave na subárvore direita e exclua o nó desejado como uma folha.

II. Localizando um nó com um determinado valor de campo-chave

Ao realizar esta operação, é necessário percorrer a árvore. É necessário levar em conta as diferentes formas de escrever uma árvore: prefixo, infixo e pós-fixo.

Surge a pergunta: como representar os nós da árvore para que seja mais conveniente trabalhar com eles? É possível representar uma árvore usando um array, onde cada nó é descrito por um valor do tipo combinado, que possui um campo de informação do tipo caractere e dois campos do tipo referência. Mas isso não é muito conveniente, pois as árvores possuem um grande número de nós que não são pré-determinados. Portanto, é melhor usar variáveis ​​dinâmicas ao descrever uma árvore. Em seguida, cada nó é representado por um valor do mesmo tipo, que contém uma descrição de um determinado número de campos de informação, e o número de campos correspondentes deve ser igual ao grau da árvore. É lógico determinar a ausência de descendentes com zero. Então, em Pascal, a descrição de uma árvore binária pode ser assim:

TIPO TreeLink = ^Árvore;

árvore = registro;

Inf: <tipo de dados>;

Esquerda, Direita: TreeLink;

End.

3. Exemplos de implementação de operações

1. Construa uma árvore de n nós de altura mínima, ou uma árvore perfeitamente balanceada (o número de nós das subárvores esquerda e direita de tal árvore não deve diferir em mais de um).

Algoritmo de construção recursiva:

1) o primeiro nó é tomado como a raiz da árvore.

2) a subárvore esquerda de nl nós é construída da mesma maneira.

3) a subárvore direita de nr nós é construída da mesma maneira;

nr = n - nl - 1. Como campo de informação, tomaremos os números dos nós digitados no teclado. A função recursiva que implementa essa construção ficará assim:

Árvore de Funções(n : Byte): TreeLink;

Vart : TreeLink; nl,nr,x : Byte;

Começar

Se n = 0 então Árvore := nil

Outro

Começar

nl := n div 2;

nr = n - nl - 1;

writeln('Digite o número do vértice ');

leia(x);

novo(t);

t^.inf := x;

t^.left := Árvore(nl);

t^.right := Árvore(nr);

Árvore := t;

End;

{Árvore}

End.

2. Na árvore ordenada binária, encontre o nó com o valor dado do campo-chave. Se não houver tal elemento na árvore, adicione-o à árvore.

Procedimento de pesquisa(x : Byte; var t : TreeLink);

Começar

Se t = zero então

Começar

Novo(t);

t^inf := x;

t^.esquerda := nil;

t^.certo := nil;

Terminar

Senão se x < t^.inf então

Pesquisar(x, t^.esquerda)

Caso contrário, se x > t^.inf então

Pesquisar(x, t^.direita)

Outro

Começar

{processo encontrado elemento}

...

End;

End.

3. Escreva os procedimentos de travessia da árvore em ordem direta, simétrica e reversa, respectivamente.

3.1. Procedimento Pré-encomenda(t : TreeLink);

Começar

Se t <> nulo então

Começar

WriteIn(t^.inf);

Pré-encomenda(t^.left);

Pré-encomenda(t^.right);

End;

End;

3.2. Procedimento Inorder(t : TreeLink);

Começar

Se t <> nulo então

Começar

Inorder(t^.esquerda);

WriteIn(t^.inf);

Inordem(t^.direita);

End;

End.

3.3. Pós-ordem do procedimento(t : TreeLink);

Começar

Se t <> nulo então

Começar

postorder(t^.left);

postorder(t^.right);

WriteIn(t^.inf);

End;

End.

4. Na árvore ordenada binária, exclua o nó com o valor fornecido do campo-chave.

Vamos descrever um procedimento recursivo que levará em conta a presença do elemento requerido na árvore e o número de descendentes deste nó. Se o nó a ser excluído tiver dois filhos, ele será substituído pelo maior valor de chave em sua subárvore esquerda e só então será excluído permanentemente.

Procedimento Delete1(x : Byte; var t : TreeLink);

Var p : TreeLink;

Procedimento Delete2(var q : TreeLink);

Começar

Se q^.right <> nil então Delete2(q^.right)

Outro

Começar

p^.inf := q^.inf;

p:= q;

q := q^.esquerda;

End;

End;

Começar

Se t = zero então

Writeln('nenhum elemento encontrado')

Senão se x < t^.inf então

Delete1(x, t^.esquerda)

Caso contrário, se x > t^.inf então

Excluir1(x, t^.direita)

Outro

Começar

P:= t;

Se p^.left = nil então

t := p^.direita

Outro

Se p^.right = nil então

t := p^.esquerda

Outro

Delete2(p^.esquerda);

End;

End.

Autor: Tsvetkova A.V.

<< Voltar: Estruturas de dados em árvore (Estruturas de dados em árvore. Operações em árvores. Exemplos de implementação de operações)

>> Encaminhar: Tipo de dados do objeto (Tipo de objeto em Pascal. O conceito de objeto, sua descrição e uso. Herança. Criação de instâncias de objetos. Componentes e escopo)

Recomendamos artigos interessantes seção Notas de aula, folhas de dicas:

Resumo das obras da literatura russa da primeira metade do século XX

Direito executivo penal. Notas de aula

Finanças estaduais e municipais. Notas de aula

Veja outros artigos seção Notas de aula, folhas de dicas.

Leia e escreva útil comentários sobre este artigo.

<< Voltar

Últimas notícias de ciência e tecnologia, nova eletrônica:

A existência de uma regra de entropia para o emaranhamento quântico foi comprovada 09.05.2024

A mecânica quântica continua a nos surpreender com seus fenômenos misteriosos e descobertas inesperadas. Recentemente, Bartosz Regula do Centro RIKEN de Computação Quântica e Ludovico Lamy da Universidade de Amsterdã apresentaram uma nova descoberta que diz respeito ao emaranhamento quântico e sua relação com a entropia. O emaranhamento quântico desempenha um papel importante na moderna ciência e tecnologia da informação quântica. No entanto, a complexidade da sua estrutura torna a sua compreensão e gestão um desafio. A descoberta de Regulus e Lamy mostra que o emaranhamento quântico segue uma regra de entropia semelhante à dos sistemas clássicos. Esta descoberta abre novas perspectivas na ciência e tecnologia da informação quântica, aprofundando a nossa compreensão do emaranhamento quântico e a sua ligação à termodinâmica. Os resultados do estudo indicam a possibilidade de reversibilidade das transformações de emaranhamento, o que poderia simplificar muito seu uso em diversas tecnologias quânticas. Abrindo uma nova regra ... >>

Mini ar condicionado Sony Reon Pocket 5 09.05.2024

O verão é uma época de relaxamento e viagens, mas muitas vezes o calor pode transformar essa época em um tormento insuportável. Conheça um novo produto da Sony – o minicondicionador Reon Pocket 5, que promete deixar o verão mais confortável para seus usuários. A Sony lançou um dispositivo exclusivo - o minicondicionador Reon Pocket 5, que fornece resfriamento corporal em dias quentes. Com ele, os usuários podem desfrutar do frescor a qualquer hora e em qualquer lugar, simplesmente usando-o no pescoço. Este miniar condicionado está equipado com ajuste automático dos modos de operação, além de sensores de temperatura e umidade. Graças a tecnologias inovadoras, o Reon Pocket 5 ajusta o seu funcionamento em função da atividade do utilizador e das condições ambientais. Os usuários podem ajustar facilmente a temperatura usando um aplicativo móvel dedicado conectado via Bluetooth. Além disso, camisetas e shorts especialmente desenhados estão disponíveis para maior comodidade, aos quais um mini ar condicionado pode ser acoplado. O dispositivo pode, oh ... >>

Energia do espaço para Starship 08.05.2024

A produção de energia solar no espaço está se tornando mais viável com o advento de novas tecnologias e o desenvolvimento de programas espaciais. O chefe da startup Virtus Solis compartilhou sua visão de usar a Starship da SpaceX para criar usinas orbitais capazes de abastecer a Terra. A startup Virtus Solis revelou um ambicioso projeto para criar usinas de energia orbitais usando a Starship da SpaceX. Esta ideia poderia mudar significativamente o campo da produção de energia solar, tornando-a mais acessível e barata. O cerne do plano da startup é reduzir o custo de lançamento de satélites ao espaço usando a Starship. Espera-se que este avanço tecnológico torne a produção de energia solar no espaço mais competitiva com as fontes de energia tradicionais. A Virtual Solis planeja construir grandes painéis fotovoltaicos em órbita, usando a Starship para entregar os equipamentos necessários. Contudo, um dos principais desafios ... >>

Notícias aleatórias do Arquivo

Transformando a luz em matéria 14.10.2021

No laboratório do governo americano localizado em Long Island, os cientistas criam matéria apenas a partir da luz com a ajuda de um sofisticado acelerador de partículas. Este fenômeno em nosso planeta ocorre pela primeira vez.

Essa descoberta experimental confirmou as previsões feitas por físicos influentes há quase um século e também lançou uma nova luz sobre os processos misteriosos que ocorrem nas escalas quântica e cósmica.

A transformação de fótons, partículas de luz sem massa, em elétrons, partículas elementares de matéria, foi realizada por uma equipe de pesquisadores do colisor de íons pesados ​​relativísticos RHIC. Os pré-requisitos teóricos para este trabalho surgiram no início do século XNUMX, mas para testá-los experimentalmente, foi necessário equipar seriamente o equipamento experimental do RHIC - o detector de rastreador de solenóide (STAR).

"Este é um efeito interessante, já que o fóton não tem carga, então, do ponto de vista clássico, o campo magnético não deve afetá-lo", explicaram os cientistas. "Portanto, isso prova claramente os aspectos fundamentais da mecânica quântica. Um fóton. pode experimentar flutuações constantes, transformando-se em um par elétron-pósitron, que por sua vez interage com o campo magnético, e foi isso que medimos."

As novas medições podem ajudar astrofísicos e cosmólogos a modelar a criação de pares elétron-pósitron a partir da luz que cerca os objetos e eventos mais energéticos do universo, de supernovas a buracos negros. A colaboração STAR planeja continuar experimentando tentando capturar as primeiras imagens bidimensionais do núcleo atômico em detalhes sem precedentes.

Outras notícias interessantes:

▪ Caixa de som sem fio Beosound Balance

▪ Cílios artificiais controlados por ímã e luz

▪ Ondas gravitacionais podem ajudar a prever tsunamis

▪ Telas E Ink Mobius para smartwatches

▪ Novas e silenciosas estações de trabalho Fujitsu Celsius

Feed de notícias de ciência e tecnologia, nova eletrônica

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site Comunicação móvel. Seleção de artigos

▪ artigo Caixa longa. expressão popular

▪ artigo O cacto tem muita água? Resposta detalhada

▪ artigo Maquinista de bombas de pó. Instrução padrão sobre proteção do trabalho

▪ artigo Lâmpadas fluorescentes para iluminação de aquários. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Microfone de rádio com antena de loop. Enciclopédia de rádio eletrônica e engenharia elétrica

Deixe seu comentário neste artigo:

Имя:


E-mail opcional):


Comentário:





Todos os idiomas desta página

Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site

www.diagrama.com.ua

www.diagrama.com.ua
2000-2024