Escolar Documentos
Profissional Documentos
Cultura Documentos
ESTRUTURAS DE DADOS
Lista é uma sequência ordenada e armazenada de valores, que podem ser do tipo literal
ou numérico, armazenados dentro de colchetes, separados por vírgulas. Cada valor em
uma lista é localizado por um índice. Esses valores são chamados itens ou elementos de
uma lista. Listas também são conhecidas como arrays em outras linguagens de
programação. Exemplo: [1, 2, 3, 4].
5.2 Matrizes
São estruturas bidimensionais, semelhantes a tabelas, com colunas e linhas, que contém
valores numéricos. Veja um exemplo:
2
Em Python, uma matriz pode ser representada por uma lista composta por listas:
Para realizar operações matemáticas com matrizes, você pode usar a biblioteca numpy;
para tal, importe-a com o comando import numpy.
import numpy
a = [[1,2], [3,4]]
a = numpy.array(a)
b = numpy.array(b)
print(numpy.dot(a, b))
print(matriz[0][0])
print(matriz[0][1])
print(matriz[0][2])
print(matriz[1][0])
print(matriz[1][1])
print(matriz[1][2])
print(matriz[2][0])
print(matriz[2][1])
3
print(matriz[2][2])
matriz = [[0]*2]+[[0]*2]
print(matriz)
print(matriz)
Note que ao invés de usar a multiplicação para criar as linhas da matriz, usamos
concatenação; isso se dá porque se usarmos multiplicação, todas as posições da matriz
serão consideradas 0,0 e 0,1 no caso dessa matriz. Então, somente serão preenchidos
os dois últimos valores que preenchermos no input em todas as posições.
4
5.3 Aplicação prática de matrizes
Agora vamos ver uma aplicação prática de matrizes. Você sabia que dá para criptografar
mensagens usando matrizes? É nisso que se baseia a cifra de Hill. Vejamos:
Escolha uma matriz 2×2 cuja determinante seja diferente de zero. Usaremos esta:
Vamos cifrar a palavra “TOUPEIRA”; atribua um valor numérico de acordo com a posição
de cada letra no alfabeto, e separe as letras em pares:
5
Que fornece o valor cifrado R-M (valores 18 e 13, respectivamente).
HGSLAKRM.
Para decifrar as cifras de Hill, usamos a matriz inversa (mod 26) da matriz codificadora;
daí a razão da determinante ser diferente de 0, pois só assim uma matriz quadrada é
inversível.
Como estamos trabalhando em mod 26, vamos usar a tabela de inversos multiplicativos
nesse valor modal:
Aplicando a fórmula:
8-7-19-12-1-11-18-13
6
Para obter os pares de texto plano, multiplicamos cada vetor pela inversa da matriz A:
Para obter os pares de texto plano, multiplicamos cada vetor pela inversa da matriz A:
Para obter os pares de texto plano, multiplicamos cada vetor pela inversa da matriz A:
Para obter os pares de texto plano, multiplicamos cada vetor pela inversa da matriz A:
Pilha é uma lista que permite acesso em somente uma extremidade. Os dados inseridos
vão se “empilhando”, de modo que o último que entrou será o primeiro a sair. Um
exemplo de uso dessa estrutura são as calculadoras que usam notação polonesa inversa
(A HP é uma delas).
7
Deques são listas que permitem remover elementos de qualquer lugar. São usados, por
exemplo, em gerenciamento de memória RAM e em construção de programas diversos.
SAIBA MAIS
Neste vídeo, você aprenderá mais sobre pilhas, filas e deques aplicados a Python.
Veja um exemplo de como usar pilhas na vida real: imagine uma calculadora HP. Como
ela processa as informações da expressão matemática a seguir?
((1 + 1) * 4) + 3
Veja na tabela:
1 entra operando 1
1 entra operando 1, 1
+ adicionar 2
4 entra operando 2, 4
* multiplicar 8
3 entra operando 8, 3
+ adicionar 11
8
Deques possuem várias aplicações. Quando você termina um processo em um
computador, o espaço da memória RAM que ele estava ocupando é disponibilizado para
uso, podendo ter antes e depois do seu endereçamento outros processos alocados. Essa
é uma operação típica de deques, que permitem adição e remoção de elementos.
Conclusão
Nesse tópico, você aprendeu sobre como trabalhar com estruturas de dados na
linguagem Python. No próximo tópico, você verá como representar e trabalhar com
árvores binárias na linguagem Python.
Referências