Matriz em estruturas de dados: o que é, conceito, exemplo de operações de inserção / exclusão

O que são matrizes?

Uma matriz é uma estrutura de dados para armazenar mais de um item de dados que possui um tipo de dados semelhante. Os itens de uma matriz são alocados em locais de memória adjacentes. Esses locais de memória são chamados elementos dessa matriz.

O número total de elementos em uma matriz é chamado comprimento . Os detalhes de uma matriz são acessados ​​sobre sua posição. Esta referência é chamada índice ou subscrito .

Neste tutorial de estrutura de dados, você aprenderá,

Conceito de Matriz

Diagrama de conceito de matrizes



O diagrama acima ilustra que:

  1. Uma matriz é um contêiner de elementos.
  2. Os elementos têm um valor e tipo de dados específicos, como 'ABC', TRUE ou FALSE, etc.
  3. Cada elemento também tem seu próprio índice, que é usado para acessar o elemento.

Observação:

  • Os elementos são armazenados em locais de memória contíguos.
  • Um índice é sempre menor que o número total de itens da matriz.
  • Em termos de sintaxe, qualquer variável declarada como uma matriz pode armazenar vários valores.
  • Quase todas as linguagens têm a mesma compreensão de matrizes, mas têm maneiras diferentes de declará-las e inicializá-las.
  • No entanto, três partes sempre permanecerão comuns em todas as inicializações, ou seja, nome da matriz, elementos e o tipo de dados dos elementos.

O diagrama a seguir ilustra a sintaxe de declaração de uma matriz em Python e C ++ para apresentar que a compreensão permanece a mesma, embora a sintaxe possa variar ligeiramente em diferentes linguagens.

Entenda a sintaxe de matrizes

  • Nome da matriz: necessário para referência fácil para a coleção de elementos
  • Tipo de dados: necessário para verificação de tipo e integridade de dados
  • Elementos: estes são os valores de dados presentes em uma matriz

Por que precisamos de matrizes?

Aqui estão alguns motivos para usar matrizes:

  • As matrizes são melhores para armazenar vários valores em uma única variável
  • Os arrays são melhores no processamento de muitos valores com facilidade e rapidez
  • Classificar e pesquisar os valores é mais fácil em matrizes

Criação de uma matriz em Python

Em Python, os arrays são diferentes das listas; as listas podem ter itens de matriz de tipos de dados, enquanto as matrizes só podem ter itens do mesmo tipo de dados.

Python tem um módulo separado para lidar com matrizes chamado array, que você precisa importar antes de começar a trabalhar nelas.

Nota: A matriz deve conter números reais como inteiros e flutuantes, nenhuma string permitida.

O código a seguir ilustra como você pode criar uma matriz de inteiros em Python para armazenar o saldo da conta:

 import array balance = array.array('i', [300,200,100]) print(balance) 

Maneiras de declarar uma matriz em Python

Você pode declarar um array em Python ao inicializá-lo usando a seguinte sintaxe.

 arrayName = array.array(type code for data type, [array,items]) 

A imagem a seguir explica a sintaxe.

Sintaxe de matriz em Python



  1. Identificar : especifique um nome como normalmente você faz para as variáveis
  2. Módulo : Python tem um módulo especial para criar arrays, chamado 'array' - você deve importá-lo antes de usá-lo
  3. Método : o módulo array possui um método para inicializar o array. Leva dois argumentos, código de tipo e elementos.
  4. Código de Tipo : especifique o tipo de dados usando os códigos de tipo disponíveis (ver lista abaixo)
  5. Elementos : especifique os elementos da matriz entre colchetes, por exemplo [130,450,103]

A tabela a seguir ilustra os códigos de tipo disponíveis para os tipos de dados suportados:

Digite o códigoTipo CTipo PythonTamanho mínimo em bytes
'c'Caracterespersonagem1
'B'caracter não identifcadoint1
'b'caractere assinadoint1
'você'Py_UNICODECaractere Unicode2
'h'curto assinadoint2
'H'curto sem sinalint2
'eu'int assinadoint2
'EU'int não assinadogrande2
'a'assinado por muito tempoint4
'A'longo sem sinalgrande4
'f'flutuadorflutuador4
'd'Duploflutuador8

Como acessar um valor de array específico?

Você pode acessar qualquer item da matriz usando seu índice.

SINTAXE

arrayName[indexNum]

EXEMPLO

balance[1]

A imagem a seguir ilustra o conceito básico de acesso a itens de matrizes por meio de seu índice.

Acessar um elemento Array

Aqui, acessamos o segundo valor da matriz usando seu índice, que é 1. A saída disso será 200, que é basicamente o segundo valor da matriz balanceada.

 import array balance = array.array('i', [300,200,100]) print(balance[1]) 

SAÍDA

200

Operações de matriz

O módulo array do Python possui funções separadas para realizar operações de array. Este é um método destrutivo de operação com matrizes, o que significa que a modificação será salva na variável da matriz.

Inserir

Com esta operação, você pode inserir um ou mais itens em uma matriz no início, no final ou em qualquer índice da matriz. Este método espera dois argumentos, índice e valor.

SINTAXE

arrayName.insert(index, value)

Exemplo:

Vamos adicionar um novo valor logo após o segundo item da matriz. Atualmente, nossa matriz de equilíbrio tem três itens 300, 200 e 100. Então, qual é o índice do segundo item da matriz com um valor de 200 se você dissesse 1.

Para inserir o novo valor logo 'depois' do índice 1, você precisa referenciar o índice 2 em seu método de inserção, como este:

 import array balance = array.array('i', [300,200,100]) balance.insert(2, 150) 

Agora, para verificar se o novo valor foi inserido, insira o nome do array e pressione Enter no teclado:

 import array balance = array.array('i', [300,200,100]) balance.insert(2, 150) print(balance) 

SAÍDA

array('i', [300,200,150,100])

Excluir

Com esta operação, você pode excluir um item de uma matriz por valor. Este método aceita apenas um argumento, valor. Depois de executar esse método, os itens da matriz são reorganizados e os índices são reatribuídos.

SINTAXE

arrayName.remove(value)

Exemplo

Vamos remover o valor de 150 da matriz. Atualmente, nossa matriz de saldo tem quatro itens 300, 200, 150 e 100. Portanto, para remover 150 da matriz, só precisamos digitar 150 dentro do argumento do método. Simples, certo?

 import array balance = array.array('i', [300,200,100]) balance.insert(2, 150) print(balance) balance.remove(150) 

Agora, para verificar se o valor foi excluído, insira o nome do array e pressione Enter no teclado:

 import array balance = array.array('i', [300,200,100]) balance.insert(2, 150) print(balance) balance.remove(150) print(balance) 

SAÍDA

 array('i', [300,200,100])

PROCURAR

Com esta operação, você pode pesquisar um item em uma matriz com base em seu valor. Este método aceita apenas um argumento, valor. Este é um método não destrutivo, o que significa que não afeta os valores do array.

SINTAXE

arrayName.index(value)

Exemplo:

Vamos procurar o valor de 150 na matriz. Atualmente, nossa matriz de saldo tem quatro itens 300, 200, 150 e 100. Portanto, para pesquisar 150 na matriz, só precisamos digitar 150 dentro do argumento do método. Isso é muito fácil. Este método retorna o índice do valor pesquisado.

 import array balance = array.array('i', [300,200,150,100]) print(balance.index(150)) 

SAÍDA

2

ATUALIZAR

Esta operação é bastante semelhante ao método de inserção, exceto que substituirá o valor existente no índice fornecido. Isso significa que simplesmente atribuirá um novo valor ao índice fornecido. Este método espera dois argumentos, índice e valor.

Sintaxe

arrayName.udpate(index, value)

Exemplo

Suponha que nosso array tenha quatro itens 300, 200, 150 e 100, e queremos substituir 150 por 145. Então, qual é o índice 150?

Parabéns, se você disse 2.

Para substituir 150 que tem índice 2, você precisa referenciar o índice 2 usando o operador de atribuição simples, como este:

 import array balance = array.array('i', [300,200,150,100]) balance[2] = 145 

Agora, para verificar se o valor foi atualizado, insira o nome do array e pressione Enter no teclado:

 import array balance = array.array('i', [300,200,150,100]) balance[2] = 145 print(balance) 

SAÍDA

array('i', [300,200,145,100])

Atravessar

Você pode percorrer uma matriz Python usando loops, como este:

 import array balance = array.array('i', [300,200,100]) for x in balance: print(x) 

SAÍDA

 300 200 100 

Criando um Array em C ++

A linguagem C ++ é mais flexível do que Python quando se trata de criar matrizes. Você pode criar matrizes das três maneiras mencionadas a seguir.

O código a seguir ilustra como você pode criar uma matriz de inteiros em C ++ para armazenar o saldo da conta:

 #include using namespace std; int main() { int balance[3] = { 300, 200, 100 }; for (int i = 0; i <3; i++) { cout << 'value of i: ' << balance[i] << endl; } return 0; } 

Maneiras de declarar uma matriz em C ++

Você pode declarar uma matriz em três variantes de sintaxe. Qual deles se adapta ao seu programa; esta escolha é baseada nos requisitos do seu programa.

Declaração por tamanho

Sintaxe

dataType arrayName[arraySize];

Exemplo

int balance[3];

Itens de array de inicialização de declaração somente

Sintaxe

dataType arrayName[] = {array, items};

Exemplo

int balance[] = { 300, 200, 100 };

Declaração por tamanho e itens da matriz de inicialização

Sintaxe

dataType arrayName[arraySize] = {array, items};

Exemplo

int balance[3] = { 300, 200, 100 };

Como acessar um valor de array específico?

Você pode acessar qualquer item da matriz usando seu índice.

Sintaxe

arrayName[indexNum]

Exemplo

balance[1]

A imagem a seguir ilustra o conceito básico de acesso a itens de matrizes por meio de seu índice.

Acessando um Elemento Array

Aqui, acessamos o segundo valor da matriz usando seu índice, que é 1. A saída disso será 200, que é basicamente o segundo valor da matriz de equilíbrio.

 #include using namespace std; int main() { int balance[3] = { 300, 200, 100 }; cout << balance[1]; return 0; } 

Saída

200

Operações de array em C ++

Ao contrário do Python, em C ++ você mesmo precisa programar a lógica para realizar as operações de inserção, exclusão, atualização de pesquisa e passagem em matrizes C ++.

Inserir

A lógica para a operação de inserção é a seguinte:

  • percorrer os itens da matriz
  • mudá-los para um índice maior
  • adicione um novo item de array em um determinado índice

No exemplo a seguir, temos 5 itens na matriz de equilíbrio e queremos adicionar um novo item logo após o valor de 200. Isso significa que temos que deslocar todos os itens após 200 para um índice maior e, em seguida, inserir nosso novo valor de 150.

 #include #include main() { int pos = 2; int size = 4; int balance[] = {300,200,100,50,0}; printf('BEFORE INCREMENT: 
'); for(int i = 0; i<5; i++) { printf('%d
',balance[i]); } /* FOR SHIFTING ITEMS TO A GREATER INDEX */ for(int i = size; i>= pos; i--) { balance[i+1]=balance[i]; } /* FOR INSERTING VALUE AT OUR DESIRED INDEX */ balance[pos] = 150; printf('AFTER INCREMENT: 
'); /* FOR PRINTING THE NEW ARRAY */ for(int i = 0; i<6; i++) { printf('%d
',balance[i]); } } 

Saída

 BEFORE INCREMENT 300 200 100 50 0 AFTERINCREMENT 300 200 150 100 50 0 

Operações de array em Java

Vamos criar uma programação em Java, neste programa aceitaremos o tamanho e o valor dos elementos do array do usuário.

 import java.util.Scanner; public class AddElements { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println('Enter the size of the array'); int n=sc.nextInt(); int arr[]=new int[n]; System.out.println('Enter Elements in the array'); for(int i=0;i

Saída: -

 Enter the size of the array 5 Enter Elements in the array 1 2 3 4 5 Elements in the array 1 2 3 4 5 

Modificar elemento na matriz: -

Atualize um elemento pelo índice fornecido.

Programa em Java para saber como modificar elementos em uma matriz

 import java.util.Scanner; public class ModifyElement { public static void main(String[] args) { int arr[]={1,2,3,4,5}; int length= arr.length; Scanner sc=new Scanner(System.in); System.out.println('Array Elements Before modify'); for(int i=0;i

Saída:-

 Array Elements Before modify 1 2 3 4 5 Enter the position where you want to change in an array 2 Enter the value 8 Array Elements After modify 1 2 8 4 5 

Elemento de acesso na matriz: -

Imprima todos os elementos da matriz.

Programa em Java para saber como atravessar na matriz

 public class AccessElements { public static void main(String[] args) { int arr[]={1,2,3,4,5}; int length= arr.length; System.out.println('Array Elements are:-'); for(int i=0;i

Saída:-

 Array Elements are:- 1 2 3 4 5 

Resumo:

  • Uma matriz é uma estrutura de dados para armazenar vários itens de dados que possuem um tipo de dados semelhante
  • Identificador, tipo de dados, comprimento da matriz, elementos e índice são as principais partes de uma matriz
  • Use o índice para processar os valores dos elementos da matriz
  • Os arrays têm excelente suporte para manter os tipos de dados intactos
  • Na maioria das linguagens, uma matriz é criada especificando um identificador, tipo de dados e elementos a serem incluídos
  • Matrizes são melhores para processar um grande número de valores e para classificação e pesquisa rápidas
  • Python tem módulos e métodos integrados para realizar operações básicas de array, como inserir, excluir, pesquisar, atualizar e atravessar
  • C ++ precisa definir programas para operações básicas de array, como inserir, excluir, pesquisar, atualizar e atravessar