32 lines
1.0 KiB
Python
Executable File
32 lines
1.0 KiB
Python
Executable File
import struct
|
|
|
|
# Define the Node structure
|
|
class Node:
|
|
def __init__(self, key, left_idx, right_idx):
|
|
self.key = key
|
|
self.left_idx = left_idx
|
|
self.right_idx = right_idx
|
|
|
|
# Create a binary search tree
|
|
nodes = [
|
|
Node(20, 1, 2), # Root node
|
|
Node(-10, 3, 4), # Left child of root
|
|
Node(30, 5, 6), # Right child of root
|
|
Node(-5, 0, 0), # Left child of node with key 10
|
|
Node(15, 0, 0), # Right child of node with key 10
|
|
Node(25, 0, 0), # Left child of node with key 30
|
|
Node(35, 0, 0) # Right child of node with key 30
|
|
]
|
|
|
|
# Write the nodes to a binary file in Big-Endian format
|
|
with open('test_tree.bin', 'wb') as f:
|
|
for node in nodes:
|
|
# Pack the data in Big-Endian format
|
|
f.write(struct.pack('>i', node.key))
|
|
f.write(struct.pack('>i', node.left_idx))
|
|
f.write(struct.pack('>i', node.right_idx))
|
|
|
|
# Verify the content of the file
|
|
with open('test_tree.bin', 'rb') as f:
|
|
content = f.read()
|
|
print("Binary content:", bytes(content).hex()) |