数据结构与算法
夕麻
这个作者很懒,什么都没留下…
展开
-
树
树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外...原创 2020-03-04 11:41:36 · 202 阅读 · 0 评论 -
栈与队列
栈如何理解“栈”?关于“栈”,就像是一摞叠在一起的盘子。我们平时放盘子的时候,都是从下往上一个一个放;取的时候,我们也是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出,这就是典型的“栈”结构从栈的操作特性上来看,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据可能有人会觉得,相比链表,栈带给我的只有限制,并没有任何优势。那我直接使用数组或者链表不就好了吗?为...原创 2020-03-03 11:50:26 · 105 阅读 · 0 评论 -
双向链表
单向链表只有一个方向,结点只有一个后继指针 next 指向后面的结点。而双向链表,顾名思义,它支持两个方向,每个结点不止有一个后继指针 next 指向后面的结点,还有一个前驱指针 prev 指向前面的结点。操作is_empty() 链表是否为空length() 链表长度travel() 遍历链表add(item) 链表头部添加append(item) 链表尾部添加insert(po...原创 2020-03-02 08:45:18 · 112 阅读 · 0 评论 -
单向循环链表
循环链表循环链表是一种特殊的单链表。实际上,循环链表也很简单。它跟单链表唯一的区别就在尾结点。我们知道,单链表的尾结点指针指向空地址,表示这就是最后的结点了。而循环链表的尾结点指针是指向链表的头结点。从我画的循环链表图中,你应该可以看出来,它像一个环一样首尾相连,所以叫作“循环”链表。操作is_empty() 判断链表是否为空length() 返回链表的长度travel() 遍历ad...原创 2020-02-26 10:58:57 · 157 阅读 · 0 评论 -
单向链表
单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。表元素域elem用来存放具体的数据。链接域next用来存放下一个节点的位置(python中的标识)变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。节点实现class SingleNode(...原创 2020-02-16 11:18:17 · 666 阅读 · 0 评论 -
数据结构 - 顺序表
在学习顺序表之前,让我们来思考几个问题列表的下标为什么从零开始为什么列表append比insert快列表append之后,id值为什么不变,也可以说内存地址不变顺序表和链表在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。对于这种需求,最简单的解...原创 2020-02-13 10:37:24 · 233 阅读 · 0 评论 -
数据结构
从广义上讲,数据结构就是指一组数据的存储结构。图书馆储藏书籍你肯定见过吧?为了方便查找,图书管理员一般会将书籍分门别类进行“存储”。按照一定规律编号,就是书籍这种“数据”的存储结构。那数据结构和算法有什么关系呢?为什么大部分书都把这两个东西放到一块儿来讲呢?这是因为,数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也...原创 2020-02-12 10:22:36 · 87 阅读 · 0 评论 -
Python内置类型性能分析
timeit模块timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)# Timer是测量小段代码执行速度的类。# stmt参数是要测试的代码语句(statment);# setup参数是运行代码时需要的设置;# tim...原创 2020-02-07 13:15:14 · 86 阅读 · 0 评论 -
算法
什么是算法算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。算法是独立存在的一种解决问题的方法和思想。从广义上说,算法就是操作数据的一组方法。对于算法而言,实现的语言并不重要,重要的是思想。算法可以有不同的语言描述实现版本(如...原创 2020-02-06 16:12:34 · 863 阅读 · 0 评论