Na Ciência da computação, uma estrutura de dados é um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente.
Diferentes tipos de estrutura de dados são adequadas a diferentes tipos de aplicação e algumas são altamente especializadas, destinando-se a algumas tarefas específicas.
Struct
A palavra-chave estrutura define um tipo de estrutura e / ou de uma variável de um tipo de estrutura. Um tipo struct é um tipo de valor que normalmente é usado para encapsular pequenos grupos de variáveis relacionadas, tais como as coordenadas de um retângulo ou as características de um item em um inventário.
É uma declaração que define uma lista de variáveis a serem colocados sob o mesmo nome em um bloco de memória, permitindo que as diferentes variáveis possam ser acessadas através de um único ponteiro.
O struct é uma palavra chave derivada da linguagem C, e não possui seu equivalente em Java, mas possui seu equivalente em ABAP e Python.
Abap : https://desenvolvimentoaberto.wordpress.com/2014/02/20/tipos-complexos-structures-abap/
Em Python um tuplas também pode armazenar diferentes tipos dentro de uma estrutura: https://desenvolvimentoaberto.wordpress.com/2014/02/22/tuples-tuplas-python-linux/
Exemplo:
Neste programa criamos uma estrutura de clientes.
C++
#include "stdafx.h" #include <iostream> #include <string> using namespace std; struct Cliente { string nome; string logradouro; string endereco; int numero; string complemento; string bairro; string cidade; string contato; string cargo; int cep; long RG; long cpf; }; int _tmain(int argc, _TCHAR* argv[]) { Cliente dados; dados.nome = "Instituto Brasileiro de Geografia e Estatística"; dados.logradouro = "Avenida"; dados.endereco = "Beira Mar"; dados.numero = 436; dados.complemento = "13o Andar"; dados.bairro = "Castelo"; dados.cep = 20021060; dados.cidade = "Rio de Janeiro"; dados.contato = "Mario de Oliveira Aguiar"; dados.cargo = "Gerente"; dados.RG = 999999999; dados.cpf = 99999999999; cout << "Empresa: " << dados.nome << endl; cout << dados.logradouro << " " << dados.endereco << " " << dados.numero << " " << dados.complemento << endl; cout << "Cep: " << dados.cep << " " << dados.bairro << " " << dados.cidade << endl; cout << endl; cout << "Contato: " << dados.contato << " - " << dados.cargo << endl; cout << "Rg: " << dados.RG << " - Cpf: " << dados.cpf << endl; cout << endl; system("pause"); return 0; }
C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DesenvolvimentoAberto { class Program { struct Cliente { public string nome; public string logradouro; public string endereco; public int numero; public string complemento; public string bairro; public string cidade; public string contato; public string cargo; public int cep; public long RG; public long cpf; } static void Main(string[] args) { Cliente dados = new Cliente(); dados.nome = "Instituto Brasileiro de Geografia e Estatística"; dados.logradouro = "Avenida"; dados.endereco = "Beira Mar"; dados.numero = 436; dados.complemento = "13o Andar"; dados.bairro = "Castelo"; dados.cep = 20021060; dados.cidade = "Rio de Janeiro"; dados.contato = "Mario de Oliveira Aguiar"; dados.cargo = "Gerente"; dados.RG = 999999999; dados.cpf = 99999999999; Console.WriteLine( "Empresa: " + dados.nome); Console.WriteLine( dados.logradouro + " " + dados.endereco + " " + dados.numero + " " + dados.complemento); Console.WriteLine( "Cep: " + dados.cep + " " + dados.bairro + " " + dados.cidade ); Console.WriteLine(); Console.WriteLine( "Contato: " + dados.contato + " - " + dados.cargo); Console.WriteLine( "Rg: " + dados.RG + " - Cpf: " + dados.cpf ); Console.WriteLine( ); Console.ReadKey(); } } }