vuoi
o PayPal
tutte le volte che vuoi
Scrivere una funzione che dati due alberi binari di ricerca b1 e b2 restituisca una lista con gli elementi comuni a b1 e b2
Ragionamento: si procede visitando b1 e si guarda se per ogni elemento di b1 ne corrisponde uno di b2
import tree
def tree_intersection(b1, b2):
intersection = []
to_visit = []
to_visit.append(b1)
while to_visit:
n = to_visit.pop(0)
found, found_node = tree.search(b2, n.data)
if found:
intersection.append(n.data)
if n.left:
to_visit.append(n.left)
if n.right:
to_visit.append(n.right)
return intersection
tree1 = tree.populate_tree_from([4, 10, -20, 3, 15])
tree2 = tree.populate_tree_from([2, 3, 15, 70, -40, 4])
print(tree_intersection(tree1, tree2))
Data una matrice A NxM con M > N, scrivere una funzione che ritagli e restituisca una matrice quadrata Q NxN contenente l'elemento A00 e stampi il numero di colonne escluse e gli elementi esclusi colonna per colonna
Esempio:
A =
1 2 3
4 5 6
Q =
1 2
4 5
Esempio Stampa:
N_col = 1
<pre><code>def sotto_matrice(mat):
N = len(mat) #righe
M = len(mat[0]) #colonne
print(N, M)
Q = []
for i in range(N):
Q.append(mat[i][0:N])
print(f' Numero colonne escluse : {M-N}')
for j in range(N, M):
for i in range(N):
print(mat[i][j])
return Q
m = [[1, 2, 3, 4, 5],[10,20,30,40,50]]
print(sotto_matrice(m))
</code></pre>
<pre><code>def quad_mat(m):
L = [0]*len(m)
for i in range(len(m)):
for j in m[i]:
L[i] += j*j
return L
m=[[1,2,3],[4,5,6]]
print(quad_mat(m))
</code></pre>
<pre><code>import random
def modifica(L, N):
while len(L) < N:
L.append(random.random())
return L
L = [3,5]
N = 6
L = modifica(L, N)
print(L)
</code></pre>
N):L1 = [] L1 += L