Algoritmo de Kahn para clasificación topológica

La ordenación topológica para un gráfico cíclico dirigido ( DAG ) es una ordenación lineal de vértices tal que para cada arista dirigida uv, el vértice u viene antes que v en la ordenación. La clasificación topológica de un gráfico no es posible si el gráfico no es un DAG. Por ejemplo, una ordenación topológica … Continue reading «Algoritmo de Kahn para clasificación topológica»

Convertir un árbol binario en su árbol espejo

Espejo de un árbol: Espejo de un árbol binario T es otro árbol binario M(T) con hijos izquierdo y derecho de todos los Nodes que no son hojas intercambiados.   C++ // C++ program to convert a binary tree // to its mirror #include<bits/stdc++.h> using namespace std;    /* A binary tree node has data, pointer  … Continue reading «Convertir un árbol binario en su árbol espejo»

Serializar y deserializar un árbol binario

La serialización consiste en almacenar un árbol en un archivo para que luego pueda restaurarse. La estructura del árbol debe ser mantenida. La deserialización es volver a leer el árbol desde el archivo. Las siguientes son algunas versiones más simples del problema: Si el árbol dado es un árbol de búsqueda binario?  Si el árbol … Continue reading «Serializar y deserializar un árbol binario»

Proceso de reclutamiento de Microsoft

Sobre la empresa Proceso de Reclutamiento Preguntas formuladas en Microsoft Experiencias de entrevista Dónde aplicar Acerca de la empresa : Microsoft Corporation es una empresa de tecnología multinacional estadounidense con sede en Redmond, Washington. Desarrolla, fabrica, otorga licencias, admite y vende software de computadora, productos electrónicos de consumo, computadoras personales y servicios. Sus productos de … Continue reading «Proceso de reclutamiento de Microsoft»

K’th elemento más pequeño/más grande en array no ordenada | Conjunto 2 (Tiempo lineal esperado) – Part 1

Recomendamos la lectura del siguiente post como requisito previo de este post. K’th elemento más pequeño/más grande en array no ordenada | Serie 1 Dado un arreglo y un número k donde k es más pequeño que el tamaño del arreglo, necesitamos encontrar el k-ésimo elemento más pequeño en el arreglo dado. Se da que … Continue reading «K’th elemento más pequeño/más grande en array no ordenada | Conjunto 2 (Tiempo lineal esperado) – Part 1»

Encuentre el número perdido

Dada una array arr[] de tamaño N-1 con enteros en el rango de [1, N] , la tarea es encontrar el número que falta entre los primeros N enteros. Nota: No hay duplicados en la lista. Ejemplos:  Entrada: arr[] = {1, 2, 4, 6, 3, 7, 8}, N = 7 Salida: 5 Explicación: El número … Continue reading «Encuentre el número perdido»

Experiencia de la entrevista de Microsoft | Conjunto 121 (en el campus para prácticas)

La ronda 1: Nos dieron 3 preguntas de codificación. Hubo muchos conjuntos diferentes. La mayoría de las preguntas se basaron en la implementación. Algunas de ellas se basaron en la estructura de datos como linklist y bst. Ellos eran:- Sucesor en orden del Node dado en bst combinar dos listas de enlaces ordenadas en orden … Continue reading «Experiencia de la entrevista de Microsoft | Conjunto 121 (en el campus para prácticas)»

Diseñe una pila que admita getMin() en O(1) tiempo y O(1) espacio adicional

Pregunta: Diseñe una estructura de datos SpecialStack que admita todas las operaciones de pila como push(), pop(), isEmpty(), isFull() y una operación adicional getMin() que debería devolver el elemento mínimo de SpecialStack. Todas estas operaciones de SpecialStack deben ser O(1). Para implementar SpecialStack, solo debe usar la estructura de datos Stack estándar y ninguna otra … Continue reading «Diseñe una pila que admita getMin() en O(1) tiempo y O(1) espacio adicional»

Tiempo mínimo necesario para pudrir todas las naranjas

Dada una array de dimensión m*n donde cada celda de la array puede tener valores 0, 1 o 2 lo que tiene el siguiente significado:   0: Empty cell 1: Cells have fresh oranges 2: Cells have rotten oranges Determine cuál es el tiempo mínimo necesario para que todas las naranjas se pudran. Una naranja podrida … Continue reading «Tiempo mínimo necesario para pudrir todas las naranjas»

Partición de un conjunto en K subconjuntos con igual suma

Dada una array de enteros de N elementos, la tarea es dividir esta array en K subconjuntos no vacíos de modo que la suma de los elementos en cada subconjunto sea la misma. Todos los elementos de esta array deben ser parte de exactamente una partición. Ejemplos:   Input : arr = [2, 1, 4, 5, 6], … Continue reading «Partición de un conjunto en K subconjuntos con igual suma»