padri & antenati comuni #12
Unanswered
CuriousCI
asked this question in
Esercizi 1
Replies: 4 comments 3 replies
-
Antenati_comuni(P : int[n],x: vert , y:vert, Vett1,Vett2){
Vett1[x],Vett2[y]=True
if ((P[x]==x and P[y]==y))
return
Antenati_comuni(P,P[x],P[y],Vett1,Vett2)
return
}
Global_antenati(){
P: int[n] //vettore dei padri di un albero
Vett1[n] : vettore booleano che tiene traccia dei nodi già visti da x,inizializzato a F
Vett2[n]: vettore booleano che tiene traccia dei nodi già visti da y ,inizializzato a F
L : list // output
vert x,y //due vertici dell albero
if(P[x]==x || P[y]==y) return
Antenati_comuni(P,P[x],P[y],Vett1,Vett2)
for(int i=0 ; i<n; i++){
if(vett1[i] == true AND vett2[i]== true)
L.insert(i)
}
return L
} |
Beta Was this translation helpful? Give feedback.
3 replies
-
fn common_daddies(tree: &[usize], mut x: usize, mut y: usize) -> Vec<usize> {
let mut daddies = vec![];
let mut x_daddies = vec![false; tree.len()];
while x != tree[x] {
x = tree[x];
x_daddies[x] = true;
}
while y != tree[y] {
y = tree[y];
if x_daddies[y] {
daddies.push(y);
}
}
daddies
} |
Beta Was this translation helpful? Give feedback.
0 replies
-
@CuriousCI ho modificato il codice , ora dovrebbe andare |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Dato un albero rappresentato come vettore di padri scrivere lo pseudocodice di un algoritmo che trova gli antenati comuni di due vertici$v$ e $w$ in $O(n)$
Beta Was this translation helpful? Give feedback.
All reactions