def partList(ll, n):

    more = LinkedListFIFO()
    less = LinkedListFIFO()

    node = ll.head

    while node:
        item = node.value

        if item < n:
            less.addNode(item)

        elif item > n:
            more.addNode(item)

        node = node.pointer

    less.addNode(n)
    nodemore = more.head

    while nodemore:
        less.addNode(nodemore.value)
        nodemore = nodemore.pointer

    return less
def isCircularll(ll):
    p1 = ll.head
    p2 = ll.head

    while p2:
        try:
            p1 = p1.pointer
            p2 = p2.pointer.pointer
        except:
            break

        if p1 == p2:
            return True
    return False


if __name__ == '__main__':

    ll = LinkedListFIFO()
    for i in range(10):
        ll.addNode(i)
    ll._printList()

    print(isCircularll(ll))

    lcirc = cicularLinkedListFIFO()
    for i in range(10):
        lcirc.addNode(i)
    print(isCircularll(lcirc))
示例#3
0
def partList(ll, n):

    more = LinkedListFIFO()
    less = LinkedListFIFO()

    node = ll.head

    while node:
        item = node.value

        if item < n:
            less.addNode(item)

        elif item > n:
            more.addNode(item)

        node = node.pointer

    less.addNode(n)
    nodemore = more.head

    while nodemore:
        less.addNode(nodemore.value)
        nodemore = nodemore.pointer

    return less
        node = node.pointer

    less.addNode(n)
    nodemore = more.head

    while nodemore:
        less.addNode(nodemore.value)
        nodemore = nodemore.pointer

    return less




if __name__ == '__main__':

    ll = LinkedListFIFO()
    l = [6, 7, 3, 4, 9, 5, 1, 2, 8]
    for i in l:
        ll.addNode(i)

    print('Before Part')
    ll._printList()

    print('After Part')
    newll = partList(ll, 6)
    newll._printList()


 def _createHashTable(self):
     for i in range(self.size) :
         self.slots.append(LinkedListFIFO())
        return False

    return isPal(l1[1:-1])


def checkllPal(ll):
    node = ll.head
    l = []

    while node:
        l.append(node.value)
        node = node.pointer

    return isPal(l)


if __name__ == '__main__':

    ll = LinkedListFIFO()
    l1 = [1, 2, 3, 2, 1]

    for i in l1:
        ll.addNode(i)

    assert (checkllPal(ll) == True)

    ll.addNode(2)
    ll.addNode(3)

    assert (checkllPal(ll) == False)

def checkllPal(ll):
    node = ll.head
    l = []

    while node:
        l.append(node.value)
        node = node.pointer

    return isPal(l)





if __name__ == '__main__':

    ll = LinkedListFIFO()
    l1 = [1, 2, 3, 2, 1]

    for i in l1:
        ll.addNode(i)

    assert(checkllPal(ll) == True)

    ll.addNode(2)
    ll.addNode(3)

    assert(checkllPal(ll) == False)