1. ANHANGUERA – 2015.2
ESTRUTURA DE DADOS
EXERCÍCIOS 01 – PONTEIROS, MATRIZES, LISTAS E ALOCAÇÃO
DINÂMICA
Prof. Thomás da Costa
thomascosta@aedu.com
2. ESTRUTURA DE DADOS – Prof. Thomás da Costa
PONTEIROS, MATRIZES, LISTAS E
ALOCAÇÃO DINÂMICA
Exercícios
Digite os códigos fontes a seguir no Dev-C++ e identifique a funcionalidade dos
programas.
3. ESTRUTURA DE DADOS – Prof. Thomás da Costa
#include <iostream>
using namespace std;
int main()
{
int *ptr;
int valor;
valor = 1500;
ptr = &valor;
cout << ptr << endl;
cout << *ptr << endl;
}
4. ESTRUTURA DE DADOS – Prof. Thomás da Costa
#include <iostream>
using namespace std;
int main()
{
int *ptr;
int valor;
int total;
valor = 1600;
ptr = &valor;
total = *ptr;
cout << *ptr << endl;
cout << total << endl;
}
5. ESTRUTURA DE DADOS – Prof. Thomás da Costa
#include <iostream>
using namespace std;
int main()
{
int *ptr_inteiro;
double valor_1;
double valor_2;
valor_1 = 345.76;
ptr_inteiro = (int *)&valor_1;
valor_2 = *ptr_inteiro;
cout << valor_1 << endl;
cout << *ptr_inteiro << endl;
cout << valor_2 << endl;
}
6. ESTRUTURA DE DADOS – Prof. Thomás da Costa
#include <iostream>
using namespace std;
int main()
{
int *ptr;
int x;
ptr = &x;
*ptr = 999;
cout << &x << endl;
cout << ptr << endl;
cout << *ptr << endl;
}
7. ESTRUTURA DE DADOS – Prof. Thomás da Costa
#include <iostream>
using namespace std;
int main()
{
int valor[4][4] = {
{0, 0 ,0 ,0},
{0, 1 ,1 ,0},
{0, 1 ,1 ,0},
{0, 0 ,0 ,0}
};
valor[0][2] = 22;
for (int i=0;i<=3;i++)
{
for (int j=0;j<=3;j++)
{
cout << valor[i][j];
}
cout << endl;
}
}
8. ESTRUTURA DE DADOS – Prof. Thomás da Costa
LISTA – PARTE 1
#include <iostream>
#include <strings.h>
#include <conio.h>
#include <limits>
using namespace std;
struct alunos
{
char nome[100];
int idade;
alunos *proximo;
} *lista_alunos;
void iniciar_lista();
void inserir_aluno();
void listar_alunos();
void menu();
void limpar_teclado();
9. ESTRUTURA DE DADOS – Prof. Thomás da Costa
LISTA – PARTE 2
int main()
{
int opcao = -1;
iniciar_lista();
while (opcao != 0)
{
menu();
cin >> opcao;
if (opcao == 1)
inserir_aluno();
else if (opcao == 2)
listar_alunos();
}
delete lista_alunos;
}
10. ESTRUTURA DE DADOS – Prof. Thomás da Costa
LISTA – PARTE 3
void iniciar_lista()
{
lista_alunos = NULL;
}
void inserir_aluno()
{
limpar_teclado();
alunos *novo_aluno = new alunos;
cout << "Digite o nome do aluno:" << endl;
gets(novo_aluno->nome);
cout << "Digite a idade do aluno:" << endl;
cin >> novo_aluno->idade;
novo_aluno->proximo = NULL;
if (lista_alunos == NULL)
lista_alunos = novo_aluno;
else
{
alunos *p;
p = lista_alunos;
while (p->proximo != NULL)
p = p->proximo;
p->proximo = novo_aluno;
}
}
11. ESTRUTURA DE DADOS – Prof. Thomás da Costa
LISTA – PARTE 4
void listar_alunos()
{
alunos *p;
p = lista_alunos;
if (p->proximo == NULL)
{
cout << "------------------------------------" << endl;
cout << "Nome do Aluno:" << p->nome << endl;
cout << "Idade do Aluno:" << p->idade << endl;
cout << "------------------------------------" << endl;
}
else
{
while (p != NULL)
{
cout << "------------------------------------" << endl;
cout << "Nome do Aluno:" << p->nome << endl;
cout << "Idade do Aluno:" << p->idade << endl;
cout << "------------------------------------" << endl;
p = p->proximo;
}
}
getch();
}
12. ESTRUTURA DE DADOS – Prof. Thomás da Costa
LISTA – PARTE 5
void menu()
{
system("cls");
cout << "1 - INSERIR" << endl;
cout << "2 - LISTAR" << endl;
cout << "0 - SAIR" << endl;
}
void limpar_teclado()
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), 'n');
}