Skip to content

Instantly share code, notes, and snippets.

package tp04.ejercicio1;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class ArbolBinarioTest {
private ArbolBinario<Integer> arbolBinarioTest;
add(punto)
if (mi nivel es par)
if (el x del punto a agregar es < que mi propio x)
this.hijoIzquierdo() == null ? this.agregarHijoIzquierdo(punto) : this.hijoIzquierdo().add(punto)
else
this.hijoDerecho() == null ? this.agregarHijoDerecho(punto) : this.hijoIzquierdo().add(punto)
if (mi nivel es impar)
if (el y del punto a agregar es < que mi propio y)
this.hijoIzquierdo() == null ? this.agregarHijoIzquierdo(punto) : this.hijoIzquierdo().add(punto)
else
@mgiagante
mgiagante / gist:60615ea4a419c817b5d4d69ad5272802
Last active June 25, 2016 04:36
grafo dfs parcial simulacro
class Parcial {
public ListaGenerica<Vertice<T>> maxBottleneckPath(Grafo<T> g) {
ListaGenerica<ListaGenerica<Vertice<T>>> caminos = new ListaGenerica<ListaGenerica<Vertice<T>>>();
boolean[] visitados;
agregarCaminos(g, indice_s, indice_t, visitados, caminos);
return selectMaxBottleneckPath(caminos)
}
public selectMaxBottleneckPath(paths) { //comparar los pesos de las aristas con menor peso de cada camino
VALUE = 'global'
module A
VALUE = 'A'
class B
VALUE = 'B'
def self.value
VALUE
require 'benchmark'
executions = 100_000_000
Benchmark.bm do |conditional_assignment|
conditional_assignment.report { executions.times do a ||= 1; end }
conditional_assignment.report { executions.times do a = a || 1; end }
end
=begin
# TODO: Cómo hago que funcione con métodos que reciben parámetros?
# Referencia: http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
module Countable
module ClassMethods
def count_invocations_of(sym)
alias_method "original_#{sym}".to_sym, sym
define_method(sym) do
start_counter
class Pie
def make
add_main_ingredient
add_secondary_ingredients
cook
add_toppings
let_cool
end
def add_ingredient(ingredient)
sem free_detectors = 3 // Cantidad de detectores libres a cada instante
sem allocation = 1 // Limita la cantidad de personas que buscan ascensor al mismo tiempo
// Declara un arreglo de 0 a n-1 de booleans inicializados como false en todas sus posiciones.
// Representa los detectores valiendo para cada uno true si está ocupado o false si está libre.
boolean detector_taken[0:n-1] = ([n] false)
process Person[w = 1 to 100] {
p(free_detectors)
// Declara 2 arreglos de 0 a n-1 de booleans inicializados como false en todas sus posiciones.
boolean permissions[0:n-1] = ([n] false)
boolean requesters[0:n-1] = ([n] false)
process Coordinator {
while true {
int i = 0
while !requesters[i] { // Barre repetidamente el arreglo buscando un proceso que esté pidiendo entrar a su sección crítica.
i = (i + 1) MOD n
}
@mgiagante
mgiagante / semaphores_4.txt
Last active September 27, 2017 02:35
Semaphores 4
assignment assignments[40] = ([40] nil) // Inicializa las tareas en nulo.
error_report corrections[40] = ([40] nil) // Inicializa las correcciones en nulo.
boolean has_left[40] = ([40] false) // Indica si el alumno se ha ido.
boolean doing_assignment[40] = ([40] false) // Indica si el alumno i esta ocupado haciendo tarea.
sem can_do_assignment[40] = ([40] 0)
sem can_see_correction[40] = ([40] 0)
sem can_check_assignment = 0 // Alumnos esperando corrección