文章分类 -  python算法与数据结构

二叉树
摘要:二叉树 二叉树的基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree) 二叉树的性质(特性) 性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点 阅读全文

posted @ 2019-09-24 21:42 cherry_ning 阅读(118) 评论(0) 推荐(0)

排序与搜索(冒泡/选择/插入/希尔/快速/归并排序,二分搜索)
摘要:【冒泡排序】 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 阅读全文

posted @ 2019-09-22 19:14 cherry_ning 阅读(257) 评论(0) 推荐(0)

队列与双端队列的实现
摘要:队列 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队 阅读全文

posted @ 2019-09-18 22:05 cherry_ning 阅读(851) 评论(0) 推荐(0)

栈的实现
摘要:栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一 阅读全文

posted @ 2019-09-18 21:34 cherry_ning 阅读(223) 评论(0) 推荐(0)

单项循环链表
摘要:单向循环链表 单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。 操作 is_empty() 判断链表是否为空 length() 返回链表的长度 travel() 遍历 add(item) 在头部添加一个节点 append(item) 在尾部添加一个 阅读全文

posted @ 2019-09-18 20:45 cherry_ning 阅读(141) 评论(0) 推荐(0)

双向链表
摘要:双向链表 一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。 操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历链表 add(i 阅读全文

posted @ 2019-09-15 15:51 cherry_ning 阅读(144) 评论(0) 推荐(0)

单向链表
摘要:单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。 表元素域elem用来存放具体的数据。 链接域next用来存放下一个节点的位置(python中的标识) 变量p指向链表的头节点 阅读全文

posted @ 2019-09-14 14:13 cherry_ning 阅读(167) 评论(0) 推荐(0)

顺序表与链表
摘要:Python中的顺序表 Python中的list和tuple两种类型采用了顺序表的实现技术,具有前面讨论的顺序表的所有性质。 tuple是不可变类型,即不变的顺序表,因此不支持改变其内部状态的任何操作,而其他方面,则与list的性质类似。 list的基本实现技术 Python标准类型list就是一种 阅读全文

posted @ 2019-09-13 11:45 cherry_ning 阅读(134) 评论(0) 推荐(0)

数据结构的引入
摘要:数据结构 我们如何用Python中的类型来保存一个班的学生信息? 如果想要快速的通过学生姓名获取其信息呢? 实际上当我们在思考这个问题的时候,我们已经用到了数据结构。列表和字典都可以存储一个班的学生信息,但是想要在列表中获取一名同学的信息时,就要遍历这个列表,其时间复杂度为O(n),而使用字典存储时 阅读全文

posted @ 2019-09-12 22:32 cherry_ning 阅读(187) 评论(0) 推荐(0)

算法基础
摘要:算法的提出 算法的概念 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。 算法是独立存在的一种解决问题的方法和思想。 对于算法而言,实 阅读全文

posted @ 2019-09-11 22:13 cherry_ning 阅读(164) 评论(0) 推荐(0)

导航