Data Structures and Algorithms in Python
Miriam Antona
Software Engineer
Algorithm: set of instructions that solve a problem
Design

Code












class Node:
  def __init__(self, data):
    self.data = data
    self.next = None
  class LinkedList:
  def __init__(self):
    self.head = None
    self.tail = None
  insert_at_beginning()remove_at_beginning()insert_at_end()remove_at_end()insert_at()remove_at()search()

def insert_at_beginning(self, data): new_node = Node(data)if self.head:

def insert_at_beginning(self, data): new_node = Node(data) if self.head: new_node.next = self.head

def insert_at_beginning(self, data): new_node = Node(data) if self.head: new_node.next = self.head self.head = new_node

def insert_at_beginning(self, data): new_node = Node(data) if self.head: new_node.next = self.head self.head = new_node else:self.tail = new_node self.head = new_node
def insert_at_end(self, data): new_node = Node(data) if self.head:self.tail.next = new_nodeself.tail = new_nodeelse:self.head = new_node self.tail = new_node
def search(self, data):current_node = self.headwhile current_node:if current_node.data == data:return True

def search(self, data):
  current_node = self.head
  while current_node:
    if current_node.data == data:
      return True
    else:
      current_node = current_node.next
  
def search(self, data): current_node = self.head while current_node: if current_node.data == data: return True else: current_node = current_node.nextreturn False


sushi_preparation = LinkedList()sushi_preparation.insert_at_end("prepare")

sushi_preparation = LinkedList()  
sushi_preparation.insert_at_end("prepare")
sushi_preparation.insert_at_end("roll") 
  
sushi_preparation = LinkedList()  
sushi_preparation.insert_at_end("prepare")
sushi_preparation.insert_at_end("roll") 
sushi_preparation.insert_at_beginning("assemble")
  
sushi_preparation.search("roll")
True
sushi_preparation.search("mixing")
False
  Data Structures and Algorithms in Python