Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define TAM 10 // Define constante para o tamanho do vetor de dados
- /*
- * Nesta questão foi escolhido trabalhar com Lista pois
- */
- using namespace std;
- struct Aluno {
- int RU;
- string nome;
- string email;
- };
- struct Lista {
- Aluno dados[TAM];
- int ult;
- };
- Aluno criaAluno(int RU, string nome, string email) {
- Aluno aluno;
- aluno.nome = nome;
- aluno.email = email;
- aluno.RU = RU;
- return aluno;
- }
- void iniciarLista(Lista *lista) {
- lista->ult = -1;
- }
- bool listaCheia(Lista *lista) {
- return lista->ult == TAM - 1;
- }
- void consultarLista(Lista *lista) {
- for (int i = 0; i <= lista->ult; ++i) {
- cout << "Ru: " << lista->dados[i].RU << endl;
- cout << "Nome: " << lista->dados[i].nome << endl;
- cout << "Email: " << lista->dados[i].email << endl << endl;
- }
- }
- void insereNoFim(Lista *lista, Aluno aluno) {
- if (listaCheia(lista)) {
- cout << "Lista cheia!" << endl;
- return;
- }
- lista->ult++;
- lista->dados[lista->ult] = aluno;
- }
- void insereDadosNaLista(Lista *lista) {
- insereNoFim(lista, criaAluno(2524388, "Artur asd", "asdasd@gmail.com"));
- insereNoFim(lista, criaAluno(1, "Lorem", "sample@gmail.com"));
- insereNoFim(lista, criaAluno(2, "Ipsum Dassi", "ipsum@gmail.com"));
- insereNoFim(lista, criaAluno(3, "Artorios", "dolor@gmail.com"));
- insereNoFim(lista, criaAluno(4, "Marcos", "notenouht@gmail.com"));
- insereNoFim(lista, criaAluno(5, "Antonio", "samplthis@gmail.com"));
- insereNoFim(lista, criaAluno(6, "Marcus", "notnotnot@gmail.com"));
- insereNoFim(lista, criaAluno(7, "Felipe", "heythere@gmail.com"));
- insereNoFim(lista, criaAluno(8, "Daniele", "bangitdy@gmail.com"));
- insereNoFim(lista, criaAluno(9, "Soulja", "samplethis@gmail.com"));
- }
- void buubleSort(Lista *lista) {
- Lista aux = *lista;
- for (int i = 0; i <= aux.ult; ++i) {
- for (int j = 0; j <= aux.ult; ++j) {
- Aluno atual = aux.dados[j];
- Aluno prox = aux.dados[j + 1];
- if (atual.RU > prox.RU) {
- aux.dados[j] = prox;
- aux.dados[j + 1] = atual;
- }
- }
- }
- }
- int main() {
- Lista alunos;
- iniciarLista(&alunos);
- insereDadosNaLista(&alunos);
- consultarLista(&alunos); //Quando executado aqui, os valores aparecem
- buubleSort(&alunos);
- consultarLista(&alunos); //Aqui não
- cout << alunos.dados[1].nome << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement