说明1、更复杂的链表是双向链表或双面链表。每个节点有两个链接:一个指向前一个节点,这个节点是第一个。2、一个节点指向空值,另一个指向下一个节点,当该节点指向最后一个节点时指向空值。…
说明1、当实例化一个单向循环链表时,该链表是一个空链表,在将节点依次链接之后,链表中才会出现节点和数据。2、在链表中,为了找到链表的某个节点,需要从链表的头节点开始,依次搜索。因此…
1、冒泡排序它反复访问要排序的元素列,并依次比较两个相邻的元素。如果顺序(如从大到小)错了,就交换它们。访问元素的工作是反复进行,直到没有相邻元素需要交换,也就是说元素列已经排序完…
分类1、无序列表顺序搜索,从列表中的第一个元素开始,按默认顺序逐个查看。直到找到目标元素或查看列表。如果查看列表后仍未找到目标元素,则目标元素不在列表中。2、有序列表顺序搜索,假设…
原理1、假设表中的要素按升序排列,将表中间位置记录的关键词与检索关键词进行比较,如果两者相等,则检索成功。2、否则,利用中间位置记录将表分为前后两个子表。如果中间位置记录的关键词大…
1、散列的映射Map()创建一个空映射,然后回到一个空映射集合。在put(key,val)的映射中添加新的键值对。若键已存在,则用新值代替旧值。get返回key对应的值。如果key…
概念它是一种抽象数据类型(ADT)或实现这种抽象数据类型的数据结构,用于模拟具有树形结构性质的数据收集。它是由n(n>=1)个有限节点组成有层次关系的集合。之所以被称为“树”,是因…
说明1、使用装饰器时,原函数似乎没有改变,但其元信息发生了变化——此时的原函数实际上是包裹后的wrapper函数。2、若要保留原始函数的元信息,可以通过内置@functools.w…
1、日志记录,在某些情况下,需要统计或记录功能执行的效率,但不想改变功能本身的内容,装饰器是很好的手段。import timeit def timer(func): def…
利用装饰property实现了对私有属性的读取和保护,那么在VectorN中,如果我们需要通过vectorN.xvectorN.y等方式读取前几个元素,是否也可以使用类似的方法呢?…