예제 #1
0
from double_linked_list import DoubleLinkedList, ListNode

node1 = ListNode(15, 1)
node2 = ListNode(8, 2)
node3 = ListNode("Yeet", 3)
node4 = ListNode(18, 4)

track = DoubleLinkedList()
print("track length: %i" % track.list_length())

for current_node in [node1, node2, node3, node4]:
    track.add_list_item(current_node)
    print("track length %i" % track.list_length())
    track.output_list()

results = track.unordered_search(15)
print(results)

track.output_list()
print("index 3 is {}".format(track[3]))
예제 #2
0
class SparseArray:

    """
    constructor(number of elements = 0)
        instance.Element = element
        instance.setArray(element)
    """
    def __init__(self, _n):
        self._n = _n
        self._A = self.make_array(_n)
        self.store_array = DoubleLinkedList()

    """
    Method make_array(size)
        return low level array the length of size
    """

    def make_array(self, size):
        return (size * ctypes.py_object)()

    """
    Method setItem(index, value)
        if index < 0
            index += length of self
        if value is not blank
            add ListNode object(value, index) in store_array with add_list_item method
    """

    def __setitem__(self, k, value):
        """Insert value at index k"""
        if k < 0:
            k += len(self)
        if value is not None:
            self.store_array.add_list_item(ListNode(value , k))

    """
    method getItem(index)
        if index < 0
            index += length of self
        if not 0 <= index < size of array
            display IndexError 'invalid index'
        return store_array[index]
    """

    def __getitem__(self, k):
        """Return element at index k."""
        if k < 0:
            k += len(self)
        if not 0 <= k < self._n:
            raise IndexError('invalid index')
        return self.store_array[k]

    """
    Basic getter for length
    """

    def __len__(self):
        return self._n

    """
    method fill(sequence)
        if length of sequence > size of array
            display value error 'Seq longer than array'
        index = 0
        for element in sequence
            store_array[index] add_list_item method(ListNode class(element,
    """
    def fill(self, seq):
        if len(seq) > self._n:
            raise ValueError("Seq longer than array")
        k = 0
        for element in seq:
            self.store_array.add_list_item(ListNode(element, k))
            k += 1

    """
    method getUsage()
        nonEmpty = 0
        for object in array
            if object.node_element is not blank
                non_empty += 1
        return non_empty
        """

    def get_usage(self):
        non_empty = 0
        for i in self._A:
            if i is not None:
                non_empty +=1
        return non_empty