
数据结构与算法
通过python语言来解读数据结构与算法,夯实计算机基础。
荪荪
这个作者很懒,什么都没留下…
展开
-
数据结构与算法 -- 树与树算法
目录树树的概念树的存储与表示常见的一些树的应用场景二叉树二叉树的概念二叉树的性质(特性)二叉树的实现二叉树添加结点二叉树的遍历广度优先遍历(层次遍历)深度优先遍历二叉树由遍历确定一个树 树 二维 树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个或多个子节原创 2020-11-12 16:25:24 · 492 阅读 · 0 评论 -
数据结构与算法 -- 排序与搜索
目录前言排序与搜索一、 冒泡排序分析与实现时间复杂度二、选择排序概念分析与实现时间复杂度三、插入算法概念分析与实现时间复杂度四、希尔排序分析实现时间复杂度五、快速排序概念分析时间复杂度六、归并排序时间复杂度常见排序算法效率比较七、搜索二分查找 前言 之前都是讲的数据结构部分,这里开始讲算法部分。 排序与搜索 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之原创 2020-11-12 14:03:17 · 475 阅读 · 1 评论 -
数据结构与算法 -- 栈与队列
关注栈与队列的操作,不关注它的存放。 线性表(顺序表与链表)描述的是数据的存放。 栈和队列描述的操作。 栈和队列是对顺序表和链表的二次开发! 栈与队列的概念 栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。 由于栈数据结构只允许在一端进行操作原创 2020-11-11 11:58:29 · 855 阅读 · 0 评论 -
数据结构与算法 -- 链表
目录前言单向链表单链表的ADT模型Python中变量标识的本质单链表及结点的定义代码单链表与顺序表的对比单向循环链表遍历和求长度链表扩展双向链表 前言 链表的提出 链表与顺序表的区别: 顺序表的特点:要求存储空间必须连续的,在扩充数据的时候,一旦存储空间不够的情况下,就需要涉及到动态的改变。换言之,顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。 数据区。 链表:在扩充数据的时候,原有的数据完全不用变,多一个就增加一个。换言之,链表结构可以原创 2020-11-11 11:58:07 · 630 阅读 · 0 评论 -
数据结构与算法--顺序表
1、内存、类型本质、连续储存recv 内存:计算机的内存是真正用来存放数据,并且直接和CPU打交道的。 CPU读取内存。存储单元 是内存的基本单位是以一个字节作为索引单位的。一个字节是8位。 告诉cpu到哪个位置取数。 内存是什么样的模型呢? 内存是一个连续的存储空间。对连续的存储的空间中,它是由基本的单元存储到一块的,基本的单位代表的就是一个字节,它把一个字节作为一个标识,一个字节的8位整体会有一个地址的标识。如果你告诉计算机去0XO1去找的时候,计算机能找到这个计算机所标识的0X01的存储空间,一下子能原创 2020-11-11 11:50:32 · 550 阅读 · 0 评论