def PartitionListTest(): import numpy.random as nprnd for i_test in range(100): len_a = nprnd.randint(8) if len_a == 0: continue temp_a = list(nprnd.randint(8, size = len_a)) ll_a = LinkedQueue() for item in temp_a: ll_a.enqueue(item)
def PartitionListTest(): import numpy.random as nprnd for i_test in range(100): len_a = nprnd.randint(8) if len_a == 0: continue temp_a = list(nprnd.randint(8, size=len_a)) ll_a = LinkedQueue() for item in temp_a: ll_a.enqueue(item)
def RevInt(i_num): i_total = 0 q_digits = LinkedQueue() while i_num: q_digits.enqueue(i_num % 10) i_num = i_num / 10 i_total += 1 i_revnum = 0 while not q_digits.is_empty(): i_revnum = i_revnum * 10 + q_digits.dequeue() return i_revnum
def DirectPartition(ll_a, i_key): ll_lpart = LinkedQueue() ll_gepart = LinkedQueue() pt_a = ll_a._head while pt_a is not None: i_a = pt_a._element if i_a < i_key: ll_lpart.enqueue(i_a) else: ll_gepart.enqueue(i_a) pt_a = pt_a._next if ll_lpart.is_empty(): return ll_gepart else: ll_lpart._tail._next = ll_gepart._head ll_lpart._tail = ll_gepart._tail ll_lpart._size += ll_gepart._size return ll_lpart
def AddTwoLists(ls_a, ls_b): ls_sum = LinkedQueue() pt_a = ls_a._head pt_b = ls_b._head i_tens = 0 while pt_a is not None or pt_b is not None: if pt_a is not None and pt_b is not None: i_sum = pt_a._element + pt_b._element + i_tens if pt_a is None and pt_b is not None: i_sum = pt_b._element + i_tens if pt_a is not None and pt_b is None: i_sum = pt_a._element + i_tens i_ones = i_sum % 10 i_tens = (i_sum - i_ones) / 10 ls_sum.enqueue(i_ones) if pt_a is not None: pt_a = pt_a._next if pt_b is not None: pt_b = pt_b._next if i_tens != 0: ls_sum.enqueue(i_tens) return ls_sum
def AddTwoListsTest(): import numpy.random as nprnd for i in range(10000): len_a = nprnd.randint(10) len_b = nprnd.randint(10) temp_a = nprnd.randint(10, size=len_a) temp_b = nprnd.randint(10, size=len_b) ls_a = LinkedQueue() ls_b = LinkedQueue() for item in temp_a: ls_a.enqueue(item) for item in temp_b: ls_b.enqueue(item) ls_sum = AddTwoLists(ls_a, ls_b) print ls_a, ':', ls_b, ':', ls_sum assert (ListToNum(ls_sum) == DirectAdd(ls_a, ls_b))
def AddTwoListsTest(): import numpy.random as nprnd for i in range(10000): len_a = nprnd.randint(10) len_b = nprnd.randint(10) temp_a = nprnd.randint(10, size = len_a) temp_b = nprnd.randint(10, size = len_b) ls_a = LinkedQueue() ls_b = LinkedQueue() for item in temp_a: ls_a.enqueue(item) for item in temp_b: ls_b.enqueue(item) ls_sum = AddTwoLists(ls_a, ls_b) print ls_a, ':', ls_b, ':', ls_sum assert(ListToNum(ls_sum) == DirectAdd(ls_a, ls_b))