Python Arrays and Singly Linked List
Python Arrays and Singly Linked List
Arrays
In [ ]: first_element = arr[0]
print(first_element)
2. Multidimensional Array
In [ ]: first_row = matrix[0]
print(first_row)
[1, 2, 3]
In [ ]: # all rows
for row in matrix:
print(row)
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
3. Jagged arrays:
[1, 2]
[3, 4, 5]
[6]
Array Exercises
In [ ]: array = [1,2,3,3,4,5,10,32,12,11]
# length of array
length = len(array)
print('Length of array is :: ',length)
# print array
print(array)
Length of array is :: 10
[1, 2, 3, 3, 4, 5, 10, 32, 12, 11]
Maximum : 32
Minimum : 1
In [ ]: def reverse_array(arr):
# using slicing to reverse array
reversed_arr = arr[::-1]
return reversed_arr
# original array
print("Original Array : ",array)
Linked Lists
Definition:
A linked list is a linear data structure where elements are stored in nodes.
Each node contains the data and a reference (link) to the next node in the sequence.
Implementation
In [ ]: # creating node class to hold linked list node value and next reference.
class Node:
def __init__(self,data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self,data):
# creating object for node
new_node = Node(data)
else:
last = self.head
while last.next:
last = last.next
last.next = new_node
def display(self):
current = self.head
while current:
print(current.data, end='->')
current = current.next
print()
ll.append(1)
ll.append(2)
ll.append(3)
ll.append(4)
ll.append(5)
ll.append(6)
ll.append(7)
1->2->3->4->5->6->7->
Exercise
1. Implement a function to find the length of a singly linked list.
# printing result
print(f"length of given linked list is :: {length}")
#value to search
search = 4
# calling
print(search_ll(ll,search))
else:
# variable to hold previos node
prev = None
# deleting temp
temp = None
# msg
return msg
Deletting
# calling to delete
msg = delete_node(ll,node_data) # here ll is a previously created object of link
# message
print(msg)
# calling to delete
msg = delete_node(ll,node_data) # here ll is a previously created object of link
# message
print(msg)
# calling to delete
msg = delete_node(ll,node_data) # here ll is a previously created object of link
# message
print(msg)