コード例 #1
0
def method_2_using_stack(head):
    if not head:
        print "empty linked list"
        return

    print "\n# convert linked list to stack"
    stack = convert_linked_list_to_stack(head)
    print_stack_contents(stack)

    while head:
        if stack.pop() != head.contents:
            print "Not a palindrome"
            return
        head = head.next
    print "Yes palindrome"
コード例 #2
0
def test_convert_linked_list_to_stack():
    head1 = convert_array_to_linked_list(['f', 'g', 'e', 'g', 'f'])
    # convert linked list to stack
    stack = convert_linked_list_to_stack(head1)
    print_stack_contents(stack)
コード例 #3
0
def generate_linked_list_with_values(array):
    head = Node()
    temp_node = head
    for element in array:
        node = Node(element)
        temp_node.next = node
        temp_node = temp_node.next
    head = head.next
    return head


def generate_double_linked_list(length, start=1):
    head = _double_linked_list_Node()
    temp_node = head
    prev_node = _double_linked_list_Node()

    for i in xrange(start, length+start):
        node = _double_linked_list_Node(i)
        temp_node.next = node
        prev_node = temp_node
        temp_node = temp_node.next
        temp_node.prev = prev_node
    head =  head.next
    #print__double_linked_list_contents(head)
    return head

if __name__ == "__main__":
    print_stack_contents(generate_empty_stack())
    print_stack_contents(generate_stack(6))
    print_linked_list_contents(generate_linked_list(4))