class Node:
def __init__(self, val):
self.val = val
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, val):
if not self.head:
self.head = Node(val)
return
curr = self.head
while curr.next:
curr = curr.next
curr.next = Node(val)
def lookup(self, val):
curr = self.head
while curr:
if curr.val == val:
return True
curr = curr.next
return False
class Array:
def __init__(self, vals):
self.arr = vals
def lookup(self, val):
for item in self.arr:
if item == val:
return True
return False
class HashMap:
def __init__(self):
self.map = {}
def insert(self, key, value):
self.map[key] = value
def lookup(self, key):
return key in self.map
# Driver code
# Setup array
array = Array([1, 2, 3])
# Setup linked list
ll = LinkedList()
for v in [1, 2, 3]:
ll.append(v)
# Setup hash map
hm = HashMap()
for v in [1, 2, 3]:
hm.insert(v, f"Value{v}")
# Lookup value 2
print("Array lookup 2:", array.lookup(2))
print("Linked List lookup 2:", ll.lookup(2))
print("Hash Map lookup 2:", hm.lookup(2))traverse linked list nodes one by one
check if current node value matches lookup value
iterate over array elements sequentially
compare each array element to lookup value
store key-value pair in hash map
check if key exists in hash map directly
Array lookup 2: True
Linked List lookup 2: True
Hash Map lookup 2: True