链表的数据结构依托的是列表数据类型

    链表的特征:

    链表的存储特性

    空间占用

    1. class Array(object):
    2. def __init__(self):
    3. self.items = []
    4. def add(self,a, b):
    5. '''
    6. a: object
    7. b: object
    8. 0: index
    9. '''
    10. self.items.append(a)
    11. self.items.insert(0, b)
    12. return ""
    13. def delete(self, e, f):
    14. '''
    15. remove: delete object
    16. pop: delete elements in the oder of index
    17. pop: default: the last element
    18. '''
    19. self.items.remove(e)
    20. self.items.pop(f)
    21. self.items.pop(-1)
    22. return self.items # 方便对照删除前和删除后列表的状态
    23. def modify(self, g):
    24. """
    25. g : object
    26. """
    27. self.items[1] = g
    28. return ""
    29. def query(self, h):
    30. return len(self.items), self.items.index(h)
    31. def ranking(self):
    32. self.items.sort(reverse=True)
    33. print(self.items)
    34. self.items.sort()
    35. print(self.items)
    36. return ""
    37. def listing(self):
    38. for i, j in enumerate(self.items):
    39. print("The index is", i, "The element is", j)
    40. for k in self.items:
    41. print(k)
    42. for l in range(0, len(self.items)):
    43. print("The index is ", l, "the element is", self.items[l])
    44. return ""
    45. a = Array()
    46. print("增加元素,此函数运用两种方法增加,所以需要传入两个值")
    47. a.add(100, 99)
    48. a.add(77, 66)
    49. print("对数组中的所有元素遍历,这里运用了三种方法,所以会有三个输出")
    50. print(a.listing())
    51. print("这里是对数组的元素进行修改,默认对索引值为1的元素进行修改")
    52. a.modify(88)
    53. print("这里对元素进行排序,默认升序,还增加了逆序排序")
    54. print(a.ranking())
    55. print(a.listing())
    56. print("这里是对元素进行查询,第一个返回值是数组的长度,第二个返回值是查询的这个元素的索引位置")
    57. print(a.query(88))
    58. print("指定删除元素,前两种方法运用不同方法删除对象,最后一个方法默认删除最后一个元素")
    59. print(a.delete(100, 1))
    60. '''
    61. """
    62. 1,数组的元素必须是同一个数据类型
    63. 2,区分那些方法需要传入值,那些方法不需要返回值(将返回值设置为空,免得看到None)
    64. 3,注意那些方法的操作是原地进行的,不能打印,函数自动返回操作后的结果和直接用return返回操作后的数据结构
    65. '''

    //