From 8ed7d150319315df5e116660634c6b23ba10454c Mon Sep 17 00:00:00 2001 From: harikakatne <126040344+harikakatne@users.noreply.github.com> Date: Tue, 3 Feb 2026 19:26:46 -0800 Subject: [PATCH] precourse - 1 harika precourse - 1 harika --- .idea/.gitignore | 3 ++ .idea/PreCourse-1.iml | 12 ++++++++ .../inspectionProfiles/profiles_settings.xml | 6 ++++ .idea/misc.xml | 7 +++++ .idea/modules.xml | 8 +++++ .idea/vcs.xml | 6 ++++ Exercise_1.py | 17 +++++++---- Exercise_2.py | 6 ++-- Exercise_3.py | 30 ++++++++++++++++++- 9 files changed, 87 insertions(+), 8 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/PreCourse-1.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 000000000..26d33521a --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/PreCourse-1.iml b/.idea/PreCourse-1.iml new file mode 100644 index 000000000..460d4026f --- /dev/null +++ b/.idea/PreCourse-1.iml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 000000000..105ce2da2 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..1d3ce46ba --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..7fc8bedea --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..35eb1ddfb --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Exercise_1.py b/Exercise_1.py index 532833f5d..8a90c107e 100644 --- a/Exercise_1.py +++ b/Exercise_1.py @@ -2,20 +2,27 @@ class myStack: #Please read sample.java file before starting. #Kindly include Time and Space complexity at top of each file def __init__(self): + self.stack = [] + def isEmpty(self): - + if len(self.stack) == 0: + return self.stack + def push(self, item): - + return self.stack.append(item) def pop(self): - - + return self.stack.pop() + def peek(self): + return self.stack[len(self.stack) -1] def size(self): + return len(self.stack) def show(self): - + for i in range(len(self.stack)): + return self.stack[i] s = myStack() s.push('1') diff --git a/Exercise_2.py b/Exercise_2.py index b11492215..5ca9cf0e7 100644 --- a/Exercise_2.py +++ b/Exercise_2.py @@ -6,10 +6,12 @@ def __init__(self, data): class Stack: def __init__(self): - + self.stack = [] + def push(self, data): - + self.append(data) def pop(self): + return self.pop() a_stack = Stack() while True: diff --git a/Exercise_3.py b/Exercise_3.py index a5d466b59..d57bd2e19 100644 --- a/Exercise_3.py +++ b/Exercise_3.py @@ -3,6 +3,8 @@ class ListNode: A node in a singly-linked list. """ def __init__(self, data=None, next=None): + self.data = data + self.next = None class SinglyLinkedList: def __init__(self): @@ -17,6 +19,14 @@ def append(self, data): Insert a new element at the end of the list. Takes O(n) time. """ + new = ListNode(data) + if self.head == None: + self.head = new + new.next = None + curr = self.head + while curr.next != None: + curr = curr.next + curr.next = new def find(self, key): """ @@ -24,9 +34,27 @@ def find(self, key): `key`. Return the element or `None` if not found. Takes O(n) time. """ - + curr = self.head + while curr != None: + if curr.data == key: + return curr + return None + def remove(self, key): """ Remove the first occurrence of `key` in the list. Takes O(n) time. """ + if self.head == key: + self.head = self.head.next + return + prev = self.head + curr = self.head.next + while curr.next != None: + if curr.data == key: + prev.next = curr.next + prev = prev.next + curr = curr.next + + +