数据结构 数据的规模抽象
1、将数据的规模抽象为一个n,而问题规模的大小和时间复杂度抽象为一个关于n的函数。如果在意的是时间复杂度的整体趋势或者说是时间复杂度的规模,则时间复杂度将抽象为只跟n相关的函数,去除与常数项,系数和次要项,并去最高次n项。
3、数据,分类,存储,字符串,int,组成,浮点,基本数据类型的一次封装。
4、ADT抽象数据类型。数据的封装方式和支持的方法,只是提供接口而不在意具体的方法是如何实施的!
5、如何优化其他通用开源的框架,思路怎么操作!
6、算法(思想):输入(>=0个),输出(>=1个),有穷性,确定性,可行性!
7、尾部插入——append优于头部插入insert(0,i)、头部取出——pop()
9、变量的类型,决定存储空间的大小需要多少字节。32位二进制数据,整数还是4个字节。int——4个字节、char——1个字节。当变量类型不一样时,由于需要保证连续存储而且每个元素占用的空间是相等的——目的是为了在有序的前提下快速定位地址=(n-1)*c。采用的是元素外置,列表存储的是元素的地址,而且表头和元素分开存储——元素外置,由于存储地址,地址是32位,需要4个字节。
10、Python中变量标识的本质——a=1、b=2、a=b、a、b不是1和2空间的别名(区别于其他编程语言),而是存储放置1、2数据的内存存储地址。a=b并不是交换a,b里面的数据,而是改变a,b存储的地址的指向。在这个过程,数据1、2及其存储位置和a,b里面的存储数据并没有发生改变,只是指向的改变。Python语言不能直接操作地址,等号是产生一个引用的链接。
11、Python当中一切皆对象!!!def f();a=f!a可以指向函数对象!
12、对象方法和类方法。对象方法有self、除了self是否还需要传递参数 element。类属性和对象属性
13、self 和__init__和__main__——游标、游标对象
# 情况考虑不完善,而且代码很难看!
max_pos = self.length() - 1
if pos <= 0:
self.add(item)
elif pos <= max_pos:
pre = self.__head
while pos != 1:
pre = pre.next
pos -= 1
node = Node(item)
node.next = pre.next
pre.next = node
else:
self.append(item)
# 其他示例
if pos <= 0:
self.add(item)
elif pos > (self.length()-1):
self.append(item)
else:
pre = self.__head
count = 0
while count < (pos - 1):
count += 1
pre = pre.next
# 循环退出时pre停留在pos-1的位置
node = Node(item)
node.next = pre.next
pre.next = node