(i) What is binary tree (ii) Write a program to multiply any two matrices. (use any program of choice)

A "reload" of the page immediately after posting will cause the post to be resubmitted, sometimes resulting in multiple posts. If you want to make sure the post has been submitted correctly, display the previous page and then reload. It will display an updated version of the previous page.

You can read up about binary trees here:
http://en.wikipedia.org/wiki/Binary_tree

For the matrix multiplication, would you like help on the mathematical part or the programming aspect? If it is the latter, with which programming language are you familiar?

(i) A binary tree is a non-linear data structure in computer science that consists of nodes, where each node can have at most two children referred to as the left child and the right child. It is called a binary tree because each node has a maximum of two children. The first node at the top is called the root, and the tree starts branching out from there.

To understand binary trees, think of a tree-like structure where each node can have zero, one, or two children. The left child is usually considered to be at a lower value compared to the parent node, whereas the right child is considered to be at a higher value than the parent node. This ordering property makes binary trees useful for search and sorting algorithms.

(ii) Writing a program to multiply two matrices can be done using any programming language of your choice. Here we will provide an example using Python:

```python
def matrix_multiplication(matrix1, matrix2):
if len(matrix1[0]) != len(matrix2):
print("Matrices cannot be multiplied.")
return None

result = [[0 for _ in range(len(matrix2[0]))] for _ in range(len(matrix1))]

for i in range(len(matrix1)):
for j in range(len(matrix2[0])):
for k in range(len(matrix2)):
result[i][j] += matrix1[i][k] * matrix2[k][j]

return result

# Example usage
matrix1 = [[1, 2, 3],
[4, 5, 6]]
matrix2 = [[7, 8],
[9, 10],
[11, 12]]

result = matrix_multiplication(matrix1, matrix2)
print(result)
```

In this program, we define a function called `matrix_multiplication` that takes two matrices as input (`matrix1` and `matrix2`). First, we check if the number of columns in `matrix1` is equal to the number of rows in `matrix2` to ensure they can be multiplied. If not, we print a message stating that the matrices cannot be multiplied.

If they can be multiplied, we create a new matrix called `result` with the appropriate dimensions, which will store the multiplication result. We then use nested loops to perform the multiplication according to the matrix multiplication rules: multiplying each element of `matrix1` by the corresponding element in `matrix2`, and summing the products to populate the corresponding element in the `result` matrix.

Finally, we return the `result` matrix and print it to see the output.