main(){ struct pilha p; inicializa(&p); printf("Comeco Vazio : %d\n", vaziaBegin(&p)); printf("Final Vazio : %d\n", vaziaEnd(&p)); printf("Cheia : %d\n\n", cheia(&p)); pushBegin(&p, 1); pushBegin(&p, 1); pushBegin(&p, 1); pushBegin(&p, 1); pushEnd(&p, 1); pushEnd(&p, 1); pushEnd(&p, 1); pushEnd(&p, 1); pushEnd(&p, 1); printf("\nComeco Vazio : %d\n", vaziaBegin(&p)); printf("Final Vazio : %d\n", vaziaEnd(&p)); printf("Cheia : %d\n\n", cheia(&p)); printf("pop Begin : %d\n", popBegin(&p)); printf("pop Begin : %d\n", popBegin(&p)); printf("pop Begin : %d\n", popBegin(&p)); printf("pop Begin : %d\n", popBegin(&p)); printf("pop End : %d\n", popEnd(&p)); printf("pop End : %d\n", popEnd(&p)); printf("pop End : %d\n", popEnd(&p)); printf("pop End : %d\n", popEnd(&p)); printf("pop End : %d\n\n", popEnd(&p)); printf("Comeco Vazio : %d\n", vaziaBegin(&p)); printf("Final Vazio : %d\n", vaziaEnd(&p)); printf("Cheia : %d\n\n", cheia(&p)); getchar(); }
void *songControl(void *sFilas){ while(1){ struct Argumentos *Arg = sFilas; unsigned int iThreadCol = Arg->col,row,col; if(cheia(sFila[iThreadCol])==true && sFila[sFila->fim-1].run == (int*)1){ sFila->inicio = 0; sFila->fim = 0; } if(vazia(sFila[iThreadCol])==false){ pop(&sFila[iThreadCol],&row,&col); if(strcmp(TONES_DIR,"\0") == 0){ // PISCA LED 3 VEZES printf("Nenhum Som Associado!\n"); unsigned int estado = HIGH; for(register unsigned int cont=0 ; cont < 6 ; cont ++){ ledControl(row,col,estado); delay_ms(500); estado = !estado; } }else{ ledControl(row,col,HIGH); //LED ON char TONE_DIR[1024]; snprintf(TONE_DIR,1024,"aplay -q %s/Tones/%s/%d%d.wav",CUR_DIR,TONES_DIR,row+1,col+1); my_system(TONE_DIR); my_system("clear"); sFila[iThreadCol].run = (int*)1; ledControl(row,col,LOW);//LED OFF } } } }
bool push(int valor, stFila *qual) { if (cheia(*qual)) return false; qual->elem[qual->fim] = valor; qual->fim++; return true; }
int inserir (TFila *fila, PEDIDO elemento){ if (cheia(*fila)) return FALSE; fila->vetFila[fila->fim++] = elemento; fila->contador++; return TRUE; }
void Lista::insere(Item x){ if(!cheia()){ tam++; item[tam] = x; } else{ cout << "impossivel inserir\n"; } }
int entra(fila *fi, int valor) { if (!cheia(fi)) { fi->valores[fi->ultimo] = valor; fi->ultimo = (fi->ultimo + 1) % MAX; fi->tamanho++; return 1; } return 0; }
void insere(struct fila *fl, int value){ if(cheia(fl)) printf("\nFila cheia!"); else { fl->contador = fl->contador + 1; if(fl->fim == tamanho -1) fl->fim = 0; else fl->fim = fl->fim + 1; fl->item[fl->fim] = value; } };
int main(void){ fila fila1; int iTamanho=10; iniciar(iTamanho,&fila1); for(int cont = 0 ; cont < 10;cont++) push(cont,&fila1); int itens=0; listar(fila1,&itens); for(int cont=fila1.inicio;cont<fila1.fim;cont++){ printf("%d\n",fila1.elementos[cont]); printf("Quantidade de Itens:%d\n",itens); } for(int cont=fila1.inicio;cont<7;cont++) pop(&fila1); int *lista=listar(fila1,&itens); printf("\n\n\tRemoção de Itens!\n\n"); for(int cont=fila1.inicio;cont<fila1.fim;cont++){ printf("%d\n",*lista++); //printf("%d\n",fila1.elementos[cont]); printf("Quantidade de Itens:%d\n",itens); } printf("\n\n\tRemoção de Itens!\n\n"); for(int cont = fila1.inicio;cont<fila1.fim;cont++){ lista=listar(fila1,&itens); pop(&fila1); printf("%d\n",*lista); printf("Quantidade de Itens:%d\n",itens); } if(vazia(fila1)==true) printf("\tLista Vazia!\n"); else printf("\tLista Não Vazia!\n"); printf("\n\n\tInserindo Outras Coisas na Lista Na lista\n\n"); for(int cont = 9 ; cont >= 0;cont--) push(cont,&fila1); listar(fila1,&itens); for(int cont=fila1.inicio;cont<fila1.fim;cont++){ printf("%d\n",fila1.elementos[cont]); printf("Quantidade de Itens:%d\n",itens); } if(cheia(fila1)==true) printf("Lista cheia Novamente!\n"); else printf("Lista não está cheia ! \n"); printf("Teste das Músicas!\n"); for(int cont=0;cont<4;cont++) for(int cont1=0;cont1<4;cont1++) songControl(cont,cont1); }
void furaFila(struct fila *fl, int x){ struct fila faux; inicializa(&faux); if(cheia(fl)) { printf("Fila cheia, impossivel furar"); return; } while(!vazia(fl)) insere(&faux, retira(fl)); //for(var x = 0; x <= 2 && !vazia(&aux); x++) // insere(fl, retira(&aux)) insere(fl, x); while(!vazia(&faux)) insere(fl, retira(&faux)); };
void push(struct pilha *pp, int value){ if(cheia(pp)) printf("Pilha cheia\n"); else pp->item[++(pp->topo)] = value; }
void insere(Fila *f,int v){ if(cheia(f)) exit(1); f->vet[f->fim]=v; f->fim++; }
int main (){ printf("Software de Fila Circular\n\n"); printf("Para limpar a tela durante a execucao do programa, digite '9'\n\nPara alternar entre Fila Circular Simples e Merge, digite '0'\n\nPara limpar o Merge, digite '8'\n\n"); printf("PRESSIONE ENTER"); fflush(stdin); getchar(); system("cls"); //Decisão para Fila Circular simples ou Merge de 2 Filas Circulares int menu = 3; int tamanho; int decisao; int valor; int aux; while (menu != 1 && menu != 2){ printf("1 - Fila Circular Simples\t 2 - Merge\tOpcao: "); scanf("%d", &menu); system("cls"); } if (menu == 1){ fila f; printf("Entre com o tamanho da fila: "); scanf("%d", &tamanho); criafila(&f, tamanho); system("cls"); while (menu == 1){ printf("\n"); printf("1 - Inserir\t2 - Remover\t3 - Imprimir\n4 - Vazia\t5 - Cheia\tOpcao: "); scanf("%d", &decisao); //INICIO SWITCH switch(decisao){ case 1:{ if(cheia(&f) == 1){ printf("\nFila Cheia\n"); } else{ printf("Inserir valor: "); scanf("%d", &valor); inserir(valor, &f); } break; } case 2:{ if(vazia(&f) == 1) printf("\nFila Vazia\n"); else{ remove(&f); printf("\nRemovido\n"); } break; } case 3:{ if(vazia(&f) == 1) printf("\nFila Vazia\n"); else{ imprime(&f); } break; } case 4:{ if(vazia(&f) == 1) printf("\nFila Vazia\n"); else printf("\nFila Nao Vazia\n"); break; } case 5:{ if(cheia(&f) == 1) printf("\nFila Cheia\n"); else printf("\nFila Nao Cheia\n"); break; } case 0:{ menu = 2; system("cls"); break; } case 9:{ system("cls"); break; } } // FIM SWITCH } } int verifica = 0; while (menu == 2){ fila f1, f2, merge; int tam1, tam2; int decfila = 3; if (verifica == 0){ printf("Digite o tamanho da primeira fila: "); scanf("%d", &tam1); printf("Digite o tamanho da segunda fila: "); scanf("%d", &tam2); criafila(&f1, tam1); criafila(&f2, tam2); criafila(&merge, tam1 + tam2); verifica = 9; } while (decfila != 1 && decfila != 2){ printf("Qual fila deseja modificar? "); scanf ("%d", &decfila); } while (decfila == 1){ while(decfila == 1){ printf("\n"); printf("1 - Inserir\t2 - Remover\t3 - Imprimir\t4 - Vazia\n5 - Cheia\t6 - Mudar Fila\t7 - Merge\tOpcao: "); scanf("%d", &decisao); switch(decisao){ case 1:{ if(cheia(&f1) == 1){ printf("\nFila Cheia\n"); } else{ printf("Inserir valor: "); scanf("%d", &valor); inserir(valor, &f1); } break; } case 2:{ if(vazia(&f1) == 1) printf("\nFila Vazia\n"); else{ remove(&f1); printf("\nRemovido\n"); } break; } case 3:{ if(vazia(&f1) == 1) printf("\nFila Vazia\n"); else{ imprime(&f1); } break; } case 4:{ if(vazia(&f1) == 1) printf("\nFila Vazia\n"); else printf("\nFila Nao Vazia\n"); break; } case 5:{ if(cheia(&f1) == 1) printf("\nFila Cheia\n"); else printf("\nFila Nao Cheia\n"); break; } case 6:{ decfila = 3; system("cls"); while (decfila != 1 && decfila != 2){ printf("Qual fila deseja modificar? "); scanf ("%d", &decfila); } system("cls"); break; } case 7:{ faz_merge(&f1, &f2, &merge); imprime(&merge); break; } case 8: { while(vazia(&merge) == 0){ remove(&merge); } if(vazia(&merge)==1) printf("Merge Limpo"); break; } case 9: { system("cls"); break; } } } } while(decfila == 2){ while(decfila == 2){ printf("\n"); printf("1 - Inserir\t2 - Remover\t3 - Imprimir\t4 - Vazia\n5 - Cheia\t6 - Mudar Fila\t7 - Merge\tOpcao: "); scanf("%d", &decisao); switch(decisao){ case 1:{ if(cheia(&f2) == 1){ printf("\nFila Cheia\n"); } else{ printf("Inserir valor: "); scanf("%d", &valor); inserir(valor, &f2); } break; } case 2:{ if(vazia(&f2) == 1) printf("\nFila Vazia\n"); else{ remove(&f2); printf("\nRemovido\n"); } break; } case 3:{ if(vazia(&f2) == 1) printf("\nFila Vazia\n"); else{ imprime(&f2); } break; } case 4:{ if(vazia(&f2) == 1) printf("\nFila Vazia\n"); else printf("\nFila Nao Vazia\n"); break; } case 5:{ if(cheia(&f2) == 1) printf("\nFila Cheia\n"); else printf("\nFila Nao Cheia\n"); break; } case 6:{ system("cls"); decfila = 3; if (decfila != 1 && decfila != 2){ printf("Qual fila deseja modificar? "); scanf ("%d", &decfila); } system("cls"); break; } case 7:{ faz_merge(&f1, &f2, &merge); imprime(&merge); break; } case 8:{ while(vazia(&merge) == 0){ remove(&merge); } if(vazia(&merge)==1) printf("Merge Limpo"); break; } case 9: { system("cls"); break; } } } } } fflush(stdin); getchar(); return 0; }