コード例 #1
0
 def test_len_1(self):
     n1 = Node(1)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     data = s_list.len()
     res = 1
     self.assertEqual(data, res)
コード例 #2
0
    def brute_force_reverse(self) -> LinkedList:
        _linked_list = LinkedList()
        actual_node = self.head

        while actual_node is not None:
            _linked_list.insert_start(actual_node.data)
            actual_node = actual_node.next_node

        return _linked_list
コード例 #3
0
def sum_list(list_1, list_2):
    if list_1.len() == list_2.len():
        super_list = LinkedList()
        node_1, node_2 = list_1.head, list_2.head
        while node_1 != None:
            super_node = Node(node_1.value + node_2.value)
            super_list.add_in_tail(super_node)
            node_1 = node_1.next
            node_2 = node_2.next
        return super_list
コード例 #4
0
    def findInsertLocation(self):
        if self.isEmpty():
            return self.root
        q = myQueue(LinkedList.Node(self.root))

        while q.is_empty() == False:
            n: BinarySearchTree.Node = q.dequeue().data
            if n.hasLeft() and n.hasRight():
                q.enqueue(LinkedList.Node(n.left))
                q.enqueue(LinkedList.Node(n.right))
            else:
                return n
コード例 #5
0
    def bfs(self, startVertex, main_surface):
        q = myQueue()
        q.enqueue(LinkedList.Node(startVertex))
        startVertex.visited = True

        while not q.is_empty():
            v = q.dequeue().data
            neighbours = gg.neighbours(v)
            for n in neighbours:
                if not n.visited:
                    n.visited = True
                    q.enqueue(LinkedList.Node(n))
            showGrid(main_surface, self)
コード例 #6
0
 def test_del_one_first_3(self):
     n1 = Node(1)
     n2 = Node(2)
     n3 = Node(3)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.add_in_tail(n3)
     s_list.delete(1)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [n2, n3, 2, 3]
     self.assertEqual(data, res)
コード例 #7
0
 def test_clean_full(self):
     n1 = Node(1)
     n2 = Node(2)
     n3 = Node(3)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.add_in_tail(n3)
     s_list.clean()
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [None, None]
     self.assertEqual(data, res)
コード例 #8
0
 def test_del_mass_all(self):
     n1 = Node(1)
     n2 = Node(1)
     n3 = Node(1)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.add_in_tail(n3)
     s_list.delete(1, True)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [None, None]
     self.assertEqual(data, res)
コード例 #9
0
 def test_del_mass_no_element(self):
     n1 = Node(1)
     n2 = Node(1)
     n3 = Node(3)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.add_in_tail(n3)
     s_list.delete(4, True)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [n1, n3, 1, 1, 3]
     self.assertEqual(data, res)
コード例 #10
0
 def test_del_one_first_1(self):
     n1 = Node(1)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.delete(1)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [None, None]
     self.assertEqual(data, res)
コード例 #11
0
 def test_insert_end_2(self):
     n1 = Node(1)
     n2 = Node(2)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.insert(n1, n2)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [n1, n2, 1, 2]
     self.assertEqual(data, res)
コード例 #12
0
 def test_del_one_last_2(self):
     n1 = Node(1)
     n2 = Node(2)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.delete(2)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [n1, n1, 1]
     self.assertEqual(data, res)
コード例 #13
0
 def test_insert_middle(self):
     n1 = Node(1)
     n2 = Node(2)
     n3 = Node(3)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n3)
     s_list.insert(n1, n2)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [n1, n3, 1, 2, 3]
     self.assertEqual(data, res)
コード例 #14
0
    def setup_test_case_two():

        list_one = LinkedList()
        list_one.push(0)

        list_two = LinkedList()
        list_two.push(0)

        solution = Solution()
        result_list = (solution.add_two_numbers(list_one, list_two))

        return result_list
コード例 #15
0
 def test_del_mass_void_all(self):
     s_list = LinkedList()
     s_list.delete(1, True)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [None, None]
     self.assertEqual(data, res)
コード例 #16
0
 def test_clean_void(self):
     s_list = LinkedList()
     s_list.clean()
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [None, None]
     self.assertEqual(data, res)
コード例 #17
0
 def test_find_all_no_element(self):
     n1 = Node(1)
     n2 = Node(3)
     n3 = Node(3)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.add_in_tail(n3)
     data = s_list.find_all(2)
     res = []
     self.assertEqual(data, res)
コード例 #18
0
 def test_find_all_full(self):
     n1 = Node(1)
     n2 = Node(3)
     n3 = Node(3)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.add_in_tail(n3)
     data = s_list.find_all(3)
     res = [n2, n3]
     self.assertEqual(data, res)
コード例 #19
0
 def test_len_3(self):
     n1 = Node(1)
     n2 = Node(3)
     n3 = Node(3)
     s_list = LinkedList()
     s_list.add_in_tail(n1)
     s_list.add_in_tail(n2)
     s_list.add_in_tail(n3)
     data = s_list.len()
     res = 3
     self.assertEqual(data, res)
コード例 #20
0
 def test_insert_void(self):
     n1 = Node(1)
     s_list = LinkedList()
     s_list.insert(None, n1)
     ht = s_list.get_head_tail()
     data = ht + s_list.list_all_nodes()
     res = [n1, n1, 1]
     self.assertEqual(data, res)
コード例 #21
0
def checkValidity(inp: str):
    s = Stack()
    for i in inp:
        if i in openings:
            s.push(LinkedList.Node(i))
        elif i in closings:
            if s.is_empty():
                return False
            if getOpposite(i) != s.pop().data:
                return False
    if s.is_empty():
        return True
    else:
        return False
コード例 #22
0
            frame_rate = 500 / (t1 - t0)
            t0 = t1

        main_surface.fill((255, 255, 255))
        if toggleFrameRateDisplay:
            the_text = my_font.render(
                "Frame = {0}, rate = {1:.2f} fps".format(
                    frame_count, frame_rate), True, (0, 0, 0))
            main_surface.blit(the_text, (10, 30))
        if start:
            startVertex = gg.vertices.head
            for i in range(SQUARE_SIZE * GRID_VERTEX_SIZE + GRID_VERTEX_SIZE):
                startVertex = startVertex.next

            q = myQueue()
            q.enqueue(LinkedList.Node(startVertex))
            startVertex.visited = True

            while not q.is_empty():
                v = q.dequeue().data
                neighbours = gg.neighbours(v)
                for n in neighbours:
                    if not n.visited:
                        n.visited = True
                        q.enqueue(LinkedList.Node(n))
                        main_surface.fill((255, 255, 255))
                showGrid(main_surface, gg)
                # pygame.time.delay(1)
                pygame.display.update()
                # fpsClock.tick(FPS)
コード例 #23
0
 def test_len_0(self):
     s_list = LinkedList()
     data = s_list.len()
     res = 0
     self.assertEqual(data, res)
コード例 #24
0
 def test_find_all_void(self):
     s_list = LinkedList()
     data = s_list.find_all(3)
     res = []
     self.assertEqual(data, res)
コード例 #25
0
ファイル: test_main.py プロジェクト: agung10/Linked-List
# Jangan lakukan perubahan apapun pada bagian ini.
# Unit test ini akan digunakan oleh dosen/asisten
# sebagai acuan dalam mengoreksi
# hasil pekerjaan mahasiswa.
# Jika ingin mencoba menjalankan unit test ini,
# tekan Ctrl+Shift+S untuk membuka terminal shell
# di bagian kanan bawah layar.
# Ketik perintah pytest, lalu enter.
# Jika masih ada AssertionError, berarti fungsi yang
# dibuat belum benar.
# Jika tidak ada AssertionError dan hasil pengujian
# menunjukkan 100% sukses, berarti fungsi sudah benar.

from main import LinkedList, Node

list1 = LinkedList(Node(1, Node(2, Node(3, Node(4, Node(5))))))
list2 = LinkedList(Node(5, Node(5, Node(5, Node(5)))))
list3 = LinkedList(Node(1, Node(51, Node(5, Node(7, Node(9, Node(3)))))))
list4 = LinkedList()
list5 = LinkedList(Node(13))
list6 = LinkedList(Node(200))


def test_sum_odd_1():
    assert list1.sum_odd() == 9


def test_sum_odd_2():
    assert list2.sum_odd() == 20

コード例 #26
0
from main import Node, LinkedList


def sum_list(list_1, list_2):
    if list_1.len() == list_2.len():
        super_list = LinkedList()
        node_1, node_2 = list_1.head, list_2.head
        while node_1 != None:
            super_node = Node(node_1.value + node_2.value)
            super_list.add_in_tail(super_node)
            node_1 = node_1.next
            node_2 = node_2.next
        return super_list


n1 = Node(1)
s_list = LinkedList()
s_list.add_in_tail(n1)
print(s_list.get_head_tail())
コード例 #27
0

class myQueue(LinkedList):
    def __init__(self,
                 head: LinkedList.Node = None,
                 tail: LinkedList.Node = None):
        super().__init__(head, tail)

    def enqueue(self, node: LinkedList.Node):
        self.insert_last(node)

    def dequeue(self):
        return self.remove_first()

    def peek_front(self):
        return self.peek_first()

    def peek_back(self):
        return self.peek_last()


if __name__ == "__main__":
    queue = myQueue()
    queue.enqueue(LinkedList.Node('F**k'))
    queue.enqueue(LinkedList.Node('You'))
    queue.enqueue(LinkedList.Node('Sharyar and Majid'))

    queue.display()
    queue.dequeue()
    queue.display()
コード例 #28
0
        elif i in closings:
            if s.is_empty():
                return False
            if getOpposite(i) != s.pop().data:
                return False
    if s.is_empty():
        return True
    else:
        return False


if __name__ == "__main__":

    a = '[2+((3*4)+{2-4})][]'
    print(checkValidity(a))
    exit()
    s = Stack(None, None)
    s.display()
    s.push(LinkedList.Node(12, None))
    s.push(LinkedList.Node(7, None))
    s.push(LinkedList.Node(79, None))
    s.display()
    print('\nPopped: {}'.format(s.pop()))
    s.display()
    print('\n')
    print('\nPopped: {}'.format(s.pop()))
    s.display()
    print('\n')
    print('\nPopped: {}'.format(s.pop()))
    s.display()
    print('\n')