Ir para conteúdo
Fórum Script Brasil

samuelhgb

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Posts postados por samuelhgb

  1. Boa Tarde galera, estou fazendo um exercício e nele pede para adicionar um elemento de forma ordenada em uma fila encadeada, o problema e que a fila encadeada só retira elemento do início e adiciona no final. EX: {1,2,3,5,7} item = 4 então ficaria assim {1,2,3,4,5,7}.

    #include <assert.h> /**< Necessário para uso da macro "assert" */
    #include <cstdlib> /**< Necessário para uso do NULL */
    #include "filaenc.hpp"
    
    struct Noh {
    	int item; /**< Representa a informação a ser armazenada em cada nó da fila. */
    	Noh* prox; /**< É um ponteiro para o próximo nó da fila. */
    };
    
    struct FilaEnc {
        Noh* inicio; /**< É um ponteiro para o início da fila. */
        Noh* fim; /**< É um ponteiro para o fim da fila. */
    };
    
    FilaEnc* criar_fila() {
    	/* 
    	 * Caso não seja possível alocar o espaço solicitado, o próprio operador "new"
    	 * irá lançar uma exceção abortando a execução do programa.
    	 */
    	FilaEnc* fila = new FilaEnc;
        
    	fila->inicio = NULL;
    	fila->fim = NULL;
    	return fila;
    }
    
    void liberar_fila(FilaEnc* fila) {
    	/* 
    	 * Macro da biblioteca \file assert.h. Aborta a execução do programa e envia uma mensagem 
    	 * de erro para a saída de erro padrão, caso a expressão entre parênteses seja avaliada 
    	 * como false.
    	*/
    	assert(fila != NULL);
    	
    	// Libera a memória alocada para cada nó da fila individualmente.
    	while(fila->inicio != NULL) {
    		remover(fila);
    	}	
    	delete fila;
    }
    
    bool estah_vazia(FilaEnc* fila) {
    	assert(fila != NULL);	
    	
    	return (fila->inicio == NULL);
    }
    
    void inserir(FilaEnc* fila, int item) {
    	assert(fila != NULL);
    	
    	Noh *novo_noh = new Noh;
    	novo_noh->item = item;
    	novo_noh->prox = NULL;
    	
        if (fila->fim == NULL) {
            fila->inicio = novo_noh;
        } else {
            fila->fim->prox = novo_noh;
        } 
        fila->fim = novo_noh;
    }
    
    int remover(FilaEnc* fila) {
    	assert(fila != NULL);
    	assert(!estah_vazia(fila));    
            
    	Noh* aux = fila->inicio;
        fila->inicio = aux->prox;
        int item = aux->item;
        if (fila->inicio == NULL) {
    		fila->fim = NULL;
    	}
        delete aux;
        return item;
    }
    
    int obter_inicio(FilaEnc* fila) {
    	assert(fila != NULL);
    	assert(!estah_vazia(fila));    
        
    	return fila->inicio->item;
    }

    acima o código da fila encadeada, preciso criar uma função que insira no meio porem não tenho ideia de como fazer. Será que eu devo remover da fila adicionar em um vetor e depois de inserir o elemento do vetor volto a inserir o vetor na fila?

  2. Boa tarde galera, estou aprendendo a criar interfaces com QT designer e PyQt5. Criei uma janela bem simples só com um texto, converti de ui para py e quando tento executar  o pycharm me retorna o erro No module named 'PyQt5'.

  3. Boa trade galera, estou começando a usar python mas não consigo fazer esse programinha de test funcionar, a função deveria retornar os print mas só aparece "missing 1 required positional argument: 'self' ".  e não apresenta nem um erro no código. Poderia me ajudar? dede já muito obrigado a todos!

     

    class main():
        def __init__(self, corrente=91,tensao=70):
            self.corrente = corrente
            self.tensao = tensao
        def desliga_emergencia(self):
            if (self.corrente > 90): #Corrente chegando á 90% acionará um relé que desligará a energia do carro
                print('desligou')
                print(self.tensao)
            desliga_emergencia()

     

×
×
  • Criar Novo...