I've seen many types of linked-list implementations of binary search trees, and I am wondering how I would go about implementing one in an array. Is this possible? And how would it look like if it is? Thank you so much!
Here is an array implementation of a queue!
class Queue:
MAX = 6
def __init__(self):
self.queue = [None for x in range(self.MAX)]
self.front = 0
self.rear = 0
def isEmpty(self):
return self.front == self.rear
def size(self):
if self.isEmpty():
return 0
elif self.front < self.rear:
return self.rear - self.front
else:
return self.rear + self.MAX - self.front
def isFull(self):
return self.size() == self.MAX - 1
def insert(self, data):
if self.isFull():
print("Cannot insert to full queue")
else:
self.queue[self.rear] = data
self.rear = (self.rear + 1) % self.MAX
return data
def delete(self):
if self.isEmpty():
print("Cannot delete from empty queue")
else:
data = self.queue[self.front]
self.queue[self.front] = None
self.front = (self.front + 1) % self.MAX
return data
def peek(self):
if self.isEmpty():
return None
else:
return self.queue[self.front]
def display(self):
if self.isEmpty():
print("Empty Queue")
elif self.front < self.rear:
for i in range(self.front, self.rear):
print(self.queue[i], end = ' ')
else:
for i in range(self.front, self.MAX):
print(self.queue[i], end = ' ')
for j in range(self.rear):
print(self.queue[j], end = ' ')