Académique Documents
Professionnel Documents
Culture Documents
Tpicos Abordados
Estrutura de Dados em C : Structs; Lista Encadeada simples , dupla, circular; rvore Binria; Mtodos de Ordenao:
Bolha (Bubble Sort) Seleo (Selection Sort) Insero (Insertion Sort) QuickSort.
Structs
Tipo de dado composto que cada elemento de tipo
void)
ou
outro
Structs
tipoPessoa o nome da estrutura (novo tipo de dado)
Uma variavel desse tipo poderia ser declarada assim:
struct tipoPessoa nomeDaVariavel; /*poderia ser um vetor ou ponteiro...*/
Acessando Valores (com declarao esttica) O acesso se faz com o uso do operador ponto (.). Ex.:
/* Acessando valores em declarao estatica */
nomeDaVariavel.nome; nomeDaVariavel.idade = 11;/* Atribuio de tipo primitivo */
Structs
Acessando Valores (com declarao dinmica) O acesso se faz com o uso do operador seta (->).
Ex.:
/*Aloca espao na memoria para 1 variavel tipoPessoa*/ struct tipoPessoa *nomeDaVariavel=(struct tipoPessoa*)malloc(sizeof(struct tipoPessoa)); /* Acessando valores em declarao dinamica */
nomeDaVariavel->nome;
nomeDaVariavel->idade = 11;/* Atribuio de tipo primitivo */
Structs
Retornando Structs de funes Assim como os outros tipos, tambm podemos retornar structs em nossas funes, lembrando que, em C, no existe atribuio direta entre structs ( structA = structB, pode no acontecer como esperado).
Structs
Ex. de structs como retorno de funo:
Obs.: A varivel, dentro da funo, deve ser inicializada
dinamicamente, pois, em C, ao sair da funo qualquer coisa declarada estaticamente deixa de existir.
struct tipoPessoa * minhaFuncao(void) { /*Aloca espao na memoria para 1 variavel tipoPessoa*/ struct tipoPessoa *alunox = (struct tipoPessoa*)malloc(sizeof(struct tipoPessoa)); /*Atribui uma string a nome e outra a email*/ strcpy(alunox->nome , "Seu Nome"); strcpy(alunox->email , "seuNick@meudominio.com"); alunox->idade = 25; alunox->datanascimento[0] = 17; alunox->datanascimento[1] = 6; alunox->datanascimento[2] = 1997; return alunox; } 4
Structs
Desafios:
1) Criar um programa que permita que o usurio cadastre pessoas com os dados nome, email, data de nascimento. Ao final mostrar as informaes de cada pessoa. Obs.:A quantidade de cadastros pode ser fixa (definida). 2) Criar um sistema de cadastro de alunos com nome, matrcula, endereo e um vetor de notas para 4 provas. Ao final, seu programa deve exibir todos os alunos, a media de cada aluno e a media da turma.
Listas Encadeadas
Simples Duplas Circulares
informaes pertinentes, um elemento que aponta para o endereo da prxima struct na sequncia. Ex.:
novoElem->num = num;
return novoElem; /*Retorna o novo elemento para que seja o novo topo da lista*/ }
}
else printf("\n"); } /*Funcao main no quadro...*/
encadeadas, elas contm mais um elemento que aponta para o elemento anterior na seqncia.