defindex(self, value): cnt, p, flag = 0, self.__head, False while p: if p.data != value: p = p.next cnt += 1 else: flag = True break return cnt if flag else -1
definsert(self, Node, pos): if pos <= 0: self.addFirst(Node) elif pos > self.__length: self.append(Node) else: p = self.__head for _ inrange(pos-1): p = p.next p.next, Node.next = Node, p.next self.__length += 1
defdelPos(self, pos): if pos < 0or pos >= self.__length: print("Inavlid Pos!") elif pos == 0: self.__head = self.__head.next self.__length -= 1 else: p = self.__head for _ inrange(pos-1): p = p.next p.next = p.next.next self.__length -= 1
defdelValue(self, value): pos = self.index(value) if pos == -1: print("Value Not Found!") else: self.delPos(pos)