Question: Can someone add a static array implementation in python at the end of this code. Size of array at coders discretion. In the stiyle of

Can someone add a static array implementation in python at the end of this code. Size of array at coders discretion. In the stiyle of the following code:

class Node(): def __init__(self, data): self._data = data self._next = None self._prev = None def get_data(self): return self._data def set_data(self, data): self._data = data def set_next(self, nxt): self._next = nxt def get_next(self): return self._next def set_prev(self, prev): self._prev = prev def get_prev(self): return self._prev class DoubleLinkedList(): def __init__(self): self._head = None def __iter__(self): node = self._head while node: yield node node = node.get_next() def __len__(self): _len = 0 for node in self.__iter__(): _len += 1 return _len def __contains__(self, data): for node in self.__iter__(): if node.get_data() == data: return True return False def push_tail(self, data): new_node = Node(data) for node in self: next_node = node.get_next() if (next_node is None): node.set_next(new_node) new_node.set_prev(node) break if self._head == None: self._head = new_node def push_head(self, data): new_node = Node(data) node = self._head new_node.set_next(node) node.set_prev(new_node) self._head = new_node def pop_head(self): node = self._head next_node = node.get_next() next_node.set_prev(None) self._head = next_node def pop_tail(self): for node in self: next_node = node.get_next() prev_node = node.get_prev() if next_node is None: prev_node.set_next(None) break def remove(self, remove_data): for node in self: next_node = node.get_next() prev_node = node.get_prev() if node.get_data() == remove_data: if node == self._head: self._head = next_node next_node.set_prev(None) else: prev_node.set_next(next_node) next_node.set_prev(prev_node) def insert_before(self, find_data, insert_data): for node in self: prev_node = node.get_prev() if node.get_data() == find_data: new_node = Node(insert_data) new_node.set_next(node) if node.get_data() == self._head.get_data(): self._head = new_node new_node.set_prev(None) else: prev_node.set_next(new_node) new_node.set_prev(prev_node) break def insert_after(self, find_data, insert_data): for node in self: next_node = node.get_next() if node.get_data() == find_data: new_node = Node(insert_data) node.set_next(new_node) new_node.set_next(next_node) new_node.set_prev(node) break def __str__(self): mystring = [] for node in self: mystring.append(node.get_data()) return "->".join(mystring) STRINGS = ["Waqar", "Matt", "Tom"] my_list = DoubleLinkedList() for data in STRINGS: my_list.push_tail(data) print(my_list) print(" Searching for (" + STRINGS[2] + ") in the linked list... ") if STRINGS[2] in my_list: print("FOUND.") else: print("NOT FOUND.") print(" The length of this linked list is... ") print(len(my_list)) for node in my_list: print("Node: " + node.get_data()) if node.get_prev(): print("Prev: " + node.get_prev().get_data()) else: print("Prev: None") if node.get_next(): print("Next: " + node.get_next().get_data()) else: print("Next: None") print(" ")

.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!