this is the nav!
Workspace
Manuela Carvalho de Almeida/

# Course Notes: Data Structures and Algorithms in Python

0
Beta

Use this workspace to take notes, store code snippets, and build your own interactive cheatsheet!

Note that the data from the course is not yet added to this workspace. You will need to navigate to the course overview page, download any data you wish to use, and add it to the file browser.

# Import any packages you want to use here

### Take Notes

Add notes here about the concepts you've learned and code cells with code you want to keep.

class Node:
def __init__(self, data):
self.data = data
self.next = None

def __init__(self):
# Set the head and the tail with null values
self.tail = None

def insert_at_beginning(self, data):
# Create the new node
new_node = Node(data)
# Point the next node of the new node to the head
else:
self.tail = new_node

def insert_at_end(self, data):
# Create the new node
new_node = Node(data)
if self.tail:
# Point the next node of the new node to the head
self.tail.next = new_node
self.tail = new_node
else:
self.tail = new_node

def insert_at_given_position(self, data, k):
new_node = Node(data)
for k in range(k):
temp = temp.next
new_node.next = temp.next
temp.next = new_node

def remove_at_beginning(self):
# The "next" node of the head becomes the new head node

def remove_at_end(self):
# The "next" node of the head becomes the new head node

while(second_last.next.next):
second_last = second_last.next

second_last.next = None
return self.tail = second_last

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

class Stack:
def __init__(self):
# Initially there won't be any node at the top of the stack
self.top = None
# Initially there will be zero elements in the stack
self.size = 0

def push(self, data):
# Create a node with the data
new_node = Node(data)
if self.top:
new_node.next = self.top
# Set the created node to the top node
self.top = new_node
# Increase the size of the stack by one
self.size += 1

def pop(self):
# Check if there is a top element
if self.top is None:
return None
else:
popped_node = self.top
# Decrement the size of the stack
self.size -= 1
# Update the new value for the top node
self.top = self.top.next
popped_node.next = None
return popped_node.data
• AI Chat
• Code