int main(){ int x[MAX], n = 0, y[MAX], m = 0, inter[MAX], tam_inter = 0; le_vetor(x, &n); le_vetor(y, &m); interseccao(x, n, y, m, inter, &tam_inter); imprime_vetor(inter, tam_inter); return 0; }
//------------Classe Principal------------- int main(){ int menu, dado, i; listaconjunto *head = NULL, *tail, *conjuntoatual; /* Ponteiro do tipo listaconjunto para armazenarem: head - Primeiro conjunto criado. Indica conjunto inicio da fila; tail - Ultimo conjunto criado. Indica conjunto no final da fila; conjuntoatual - Manipulação; */ do{ printf("\nTrabalho_NP1\n\n1 - Adicionar Conjunto..\n2 - Excluir Conjunto..\n3 - Alterar conjunto..\n"); printf("4 - Exibir Intersecção..\n5 - Exibir União..\n6 - Exibir Diferença\n0 - Sair\n"); scanf("%d", &menu); printf("\033[H\033[J"); //Limpar Tela no Linux //system("cls");// Limpar tela no Windows switch (menu) { case 1: // Adicionar Conjunto if(head == NULL){ // Não há conjuntos criado; conjuntoatual = adicionarconjunto(head); head = conjuntoatual; tail = head; printf("\nPrimeiro conjunto criado!\n"); printf("Indice: %d\n", conjuntoatual->indice); } else{ // Um ou mais conjuntos criado; conjuntoatual = adicionarconjunto(head); tail = conjuntoatual; printf("\nConjunto criado!\n"); printf("Indice: %d\n", conjuntoatual->indice); } break; case 2: // Excluir Conjunto if(head == NULL){ printf("Não existem conjuntos criados!\n"); break; } printf("\nQual conjunto deseja excluir?\n"); for(i = 0; i <= tail->indice; i++){ // Loop para imprimir todos os conjuntos existentes conjuntoatual = buscarconjunto(head, i);// Torna o conjuntoatual o de indice i; if(conjuntoatual != NULL){ imprimirconjunto(conjuntoatual);//imprime conjuntoatual; } } scanf("%d", &dado); conjuntoatual = buscarconjunto(head, dado); //Busca através dos índices qual o conjunto a ser excluido if(conjuntoatual == NULL){ // Verifica se o conjunto foi encontrado, se sim sai do case printf("Conjunto não encontrado!\n"); break; } else{// se não, encontra qual o caso do ponterio e libera o espaço alocado para o conjunto selecionado if(conjuntoatual->prox == NULL && conjuntoatual->ante == NULL){//Exclusão conjunto único conjuntoatual = exclusaoconjunto(conjuntoatual); head = NULL; tail = head; printf("1 - Exclusão feita com sucesso!\n"); } else if(conjuntoatual->prox == NULL){//Exclusão ultimo conjunto conjuntoatual = exclusaoconjunto(conjuntoatual); tail = conjuntoatual; printf("Ultimo conjunto excluido com sucesso!\n"); } else if(conjuntoatual->ante == NULL){//Exclusão primeiro conjunto; conjuntoatual = exclusaoconjunto(conjuntoatual); head = conjuntoatual; printf("Primeiro conjunto excluido com sucesso!\n"); } else{//Exclusão conjunto qualquer conjuntoatual = exclusaoconjunto(conjuntoatual); printf("0 - Exclusão feita com sucesso!\n"); } } dado = 1; getchar();getchar(); printf("\033[H\033[J"); break; case 3:// Alterar conjunto for(i = 0; i <= tail->indice; i++){ // Loop para imprimir todos os conjuntos existentes conjuntoatual = buscarconjunto(head, i);// Torna o conjuntoatual o de indice i; if(conjuntoatual != NULL){ imprimirconjunto(conjuntoatual);//imprime conjuntoatual; } } printf("\nQual conjunto deseja editar?\n"); scanf("%d", &dado); conjuntoatual = buscarconjunto(head, dado);//Busca através dos índices qual o conjunto a ser editado if(conjuntoatual == NULL){ // Verifica se o conjunto foi encontrado printf("Conjunto não encontrado\n"); break; } else{ // Permite a edição do conjunto com as opções incluir ou excluir elementos do{ getchar(); getchar(); printf("\033[H\033[J"); printf("Edição do conjunto %d\n", conjuntoatual->indice); printf("\n1- Incluir 2 - Excluir 0 - Parar edição\n"); scanf("%d", &dado); switch(dado){ case 1: imprimirconjunto(conjuntoatual); printf("Novo dado: "); scanf("%d", &dado); dado = insercaoconjunto(conjuntoatual, dado); if(dado == 0){ printf("Elemento já existe no conjunto!\n"); } dado = 1; break; case 2: imprimirconjunto(conjuntoatual); printf("Dado a remover: "); scanf("%d", &dado); dado = remocacoconjunto(conjuntoatual, dado); if(dado == 0){ printf("Elemento não existe no conjunto!\n"); } dado = 1; break; case 0: break; default: printf("Opcao invalida\n"); break; } }while(dado != 0); } break; case 4: if(head == NULL){ printf("Não existem conjuntos criados!\n"); break; } else if(interseccao(head) == 0){ printf("Existe apenas um conjunto criado!\n"); } break; case 5: if(head == NULL){ printf("Não existem conjuntos criados!\n"); break; } else if(uniao(head) == 0){ printf("Existe apenas um conjunto criado!\n"); } break; case 6: if(head == NULL){ printf("Não existem conjuntos criados!\n"); break; } else if(diferenca(head) == 0){ printf("Existe apenas um conjunto criado!\n"); } break; } }while(menu != 0); }