Project – Linked List
Implementing Python-style Lists in C
Lists are one of the most important built-in data types in the Python Programming Language. The standard Python implementation is written in C and the core list data type is also implemented in C. For this project you will implement Python-style lists in C.
Due Date: Monday November 26th, at 11:59pm
Overview of Python Lists
In Python, lists can contain an arbitrary number of elements. For example:
>>> l1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print l1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> l2 = [99, 199, 299, 400]
>>> print l2
[99, 199, 299, 400]Lists can contain different types of data. In the example above, l1 and l2 contain integers, below, we see lists of strings and doubles:
l3 = [“a”, “b”, “c”, “d”]
>>> print l3 [‘a’, ‘b’, ‘c’, ‘d’]
>>> l4 = [1.8, 2.7, 1.2, 4.7, 3.3]
>>> print l4
[1.8, 2.7000000000000002, 1.2, 4.7000000000000002, 3.2999999999999998]In Python, lists can contain elements with different data types: l5 = [‘apple’, 2, 3, ‘pear’, 3.1, 3.7]
>>> print l5
[‘apple’, 2, 3, ‘pear’, 3.1000000000000001, 3.7000000000000002]In fact, in Python, lists can also contain other lists: l6 = [[1,2,3], [4,5,6], [7,8,7]]
>>> print l6
[[1, 2, 3], [4, 5, 6], [7, 8, 7]]>>> l7 = [[“CA”, [“San Francisco”, “Sacramento”, “Los Angeles”]], [“UT”, [“Salt Lake
City”, “Moab”]], [“OR”, [“Portland”, “Bend”]]]
>>> print l7
[[‘CA’, [‘San Francisco’, ‘Sacramento’, ‘Los Angeles’]], [‘UT’, [‘Salt Lake City’, ‘Moab’]], [‘OR’, [‘Portland’, ‘Bend’]]]In Python you can perform a variety of operations on lists. You can select elements using an index:
>>> print l7[1][1] [‘Salt Lake City’, ‘Moab’]
>>> print l7[1][1][0] Salt Lake City
>>>
You can modify an element using an index:
>>> l8 = [3.0, 4.0, 5.1, 6.2]
>>> print l8
[3.0, 4.0, 5.0999999999999996, 6.2000000000000002]>>> l8[3] = 5.9
>>> print l8
[3.0, 4.0, 5.0999999999999996, 5.9000000000000004]>>>
You can append to a list:
>>> l1 = [1, 2, 3]
>>> print l1 [1, 2, 3]
>>> l1.append(4)
>>> print l1 [1, 2, 3, 4]
You can determine the length of a list:
>>> len(l1) 4
You can insert into a list: l1.insert(0, 0)
>>> print l1
[0, 1, 2, 3, 4]You delete a list:
>>> del l1
A C Implementation of Python Lists
For this project you will implement a subset of the Python list data type and operations.
High-level Functions
You will also implement some high-level list operations:
● min
● max
● concat
● reverse
● sort