Ejemplo n.º 1
0
class Stack:
    def __init__(self):
        self.new_list = SinglyLinkedList()

    def push(self, data):
        self.new_list.prepend()

    def pop(self):
        return self.new_list.remove_from_head()
Ejemplo n.º 2
0
def bruteForceDeleteNode():
    ll = SinglyLinkedList()
    for i in range(10, 0, -1):
        ll.addFront(i)
    ll.print()
    try:
        while (1):
            p = int(input())
            c, pos = 0, 1
            temp, curr, prev = ll.head, ll.head, ll.head

            while temp != None:
                c += 1
                temp = temp.next

            if (p > c):
                print("No node at position given to delete")
            else:
                positionOfDeleteNode = c - p + 1
                if (positionOfDeleteNode == 1):
                    ll.head = curr.next
                else:
                    while curr != None and pos < positionOfDeleteNode:
                        pos += 1
                        prev = curr
                        curr = curr.next
                    prev.next = curr.next
                del curr
            ll.print()
    except KeyboardInterrupt:
        pass
Ejemplo n.º 3
0
def test_swap_nodes():
    ll = SinglyLinkedList()
    ll.append(1)
    ll.append(2)
    ll.append(3)
    ll.append(4)
    ll.append(5)

    swap_nodes(ll, 2, 3)
    return ll.traverse()
Ejemplo n.º 4
0
def test_reverse_ll_integer():
    ll = SinglyLinkedList()
    ll.append(1)
    ll.append(4)
    ll.append(3)
    ll.append(2)
    ll.append(5)

    assert (everse_ll_integer(ll) == 52341)
Ejemplo n.º 5
0
class Stack:
    """."""
    def __init__(self):
        self.data = SinglyLinkedList()

    """Return True if this Stack is empty."""

    def is_empty(self):
        return self.data.head() == None

    """Add VALUE to this Stack."""

    def add(self, value):
        self.data.append(value)

    """Peek at the top value of this Stack, i.e. the tail of the linked list."""

    def peek(self):
        return self.data.tail.value

    """Remove the top of this Stack and return it."""

    def pop(self):
        if self.data.head == None:
            return

        value = self.data.tail.value

        self.data.remove_tail()

        return value

    """Return the size of this Stack."""

    def size(self):
        return self.data.length()

    """Print the contents of this Stack, where the top element is the first element of a list."""

    def show(self):
        return self.data.traverse()[::-1]
Ejemplo n.º 6
0
def hashTableFindNode():
    ll = SinglyLinkedList()
    for i in range(10, 0, -1):
        ll.addFront(i)
    ll.print()
    d = {}
    try:
        while (1):
            p = int(input())
            c = 0
            temp, curr = ll.head, ll.head

            while temp != None:
                c += 1
                d[c] = temp.data
                temp = temp.next
            print("Node data at pos {} in reverse order is {}".format(
                p, d[c - p + 1]))
    except KeyboardInterrupt:
        pass
Ejemplo n.º 7
0
def efficientFindNode():
    ll = SinglyLinkedList()
    for i in range(10, 0, -1):
        ll.addFront(i)
    ll.print()
    try:
        while (1):
            p = int(input())
            c = 0
            main = ll.head
            search = ll.head
            while main != None and c < p:
                c += 1
                main = main.next

            while main != None:
                search = search.next
                main = main.next

            print("Node data at pos {} in reverse order is {}".format(
                p, search.data))
    except KeyboardInterrupt:
        pass
Ejemplo n.º 8
0
def bruteForceFindNode():
    ll = SinglyLinkedList()
    for i in range(10, 0, -1):
        ll.addFront(i)
    ll.print()
    try:
        while (1):
            p = int(input())
            c = 0
            temp, curr = ll.head, ll.head

            while temp != None:
                c += 1
                temp = temp.next

            if (p > c):
                print("No node at position given position")
            else:
                for i in range(1, c - p + 1):
                    curr = curr.next
                print("Node data at pos {} in reverse order is {}".format(
                    p, curr.data))
    except KeyboardInterrupt:
        pass
Ejemplo n.º 9
0
def createList():
    ll = SinglyLinkedList()
    for i in range(1, 11):
        ll.addFront(i)
    return ll
Ejemplo n.º 10
0
def main():
    l1 = SinglyLinkedList()
    l2 = SinglyLinkedList()

    l1.insert_at_start(1)
    l1.insert_at_start(2)
    l1.insert_at_start(3)
    l2.insert_at_start(3)
    l2.insert_at_start(5)
    l2.insert_at_start(9)
    print(l1.start_node.element)
Ejemplo n.º 11
0
 def __init__(self):
     self.data = SinglyLinkedList()
Ejemplo n.º 12
0
 def __init__(self):
     self.new_list = SinglyLinkedList()
Ejemplo n.º 13
0
# Implement stack using Linked List

from linkedlist import SinglyLinkedList

ll = SinglyLinkedList()

# Assingment to have Stack push & pop operation to reflect Naming convention
push = ll.addFront
pop = ll.deleteFront

# stack operation
print("push 10: ", end="")
push(10)
ll.print()
print("push 9: ", end="")
push(9)
ll.print()
print("push 20: ", end="")
push(20)
ll.print()
print("Linked list is: ", end="")
ll.print()
print("pop 20: ", end="")
pop()
ll.print()
print("pop 9: ", end="")
pop()
ll.print()
print("pop 10: ", end="")
pop()
ll.print()