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();
}
}
}

