Python数据结构
嗨皮lemon
这个作者很懒,什么都没留下…
展开
-
python--栈的顺序存储和链式存储
栈stack操作:后进先出,只允许在一短进行插入删除操作, 顺序存储为顺序栈,sequential stack有栈满数组溢出问题, 链式存储linked stack没有设置头结点,data+next 栈底结点next域为null。 class SeqStack(object): def __init__(self,size): self.top = -1 self.max_size = ...原创 2019-05-08 21:16:23 · 641 阅读 · 0 评论 -
Python实现--队列的顺序存储和链式存储
队列:允许插入的一端为队头front,允许删除的一端为队尾rear,先进先出的原则。 顺序队列:sequential queue 队尾指针指示队尾元素在一维数组中的当前位置,队头指针指示队头元素在一维数组中当前位置的前一个位置,空队列self.front= self.rear = 0 链式队列:linked queue 一个同时带有头指针和尾指针的单链表,头指针指向头结点,尾指针指向尾结点 cla...原创 2019-05-09 11:30:13 · 991 阅读 · 0 评论 -
Python实现插入排序--直接插入排序和希尔排序
直接插入排序:移动次数较多,时间复杂度为O(n**2)。整个排序过程只需要一个记录单元的辅助空间,所以空间复杂度为O(1),是一种稳定的排序方法。 希尔排序又称为缩小增量排序。比直接插入排序要快,但是不稳定的排序方法。 选定一个增量d1<n,所有相距d1的记录为一组。先在各组内进行插入排序,然后减小间隔d2<d1,重复上述分组和排序过程,直到d1=1为止。 直接插入实现递增排序 def...原创 2019-05-09 18:25:15 · 167 阅读 · 0 评论 -
Python实现--线性表-顺序存储结构--的基本运算
class SequenceList(): def __init__(self): self.SeqList = [] def createSequenceList(self): element = input('please input a numer and enter # ensure:') while element != '#': self.SeqList.appe...原创 2019-05-09 18:26:47 · 1341 阅读 · 0 评论 -
Python实现交换排序--冒泡排序和快速排序
冒泡排序也叫起泡排序,气泡排序。 基本思路(升序为例):比较第一个和第二个,逆序(data[0]>data[1])则交换,然后比较第二个和第三个,如此下去完成第一趟排序,这样最大的元素被安排到最后一个位置n;第二趟排序对前n-1个元素进行上述操作,第二大的元素排在n-1的位置; 最大比较次数n(n-1)/2 。时间复杂度为O(n2) 冒泡排序是稳定的。 选择排序的是目前内部排序方法中速度最...原创 2019-05-20 10:15:21 · 1087 阅读 · 0 评论