数据结构
ら Cherryゝづ
这个作者很懒,什么都没留下…
展开
-
二叉树
树与树算法 树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一个父节点; 除了根节点外,每个子节点可以分为多个不相交的子树; 比如说: tree Treedatastructure 树的术原创 2020-08-26 20:50:16 · 143 阅读 · 0 评论 -
归并排序和搜索
归并排序 归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 def merge_sort(alist): if len(alist) <= 1: return alist # 二分分解 num = len(alist)/2转载 2020-08-26 19:09:33 · 236 阅读 · 0 评论 -
希尔排序和快速排序
希尔排序 希尔排序是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL,shell于1959年提出而得名。希尔排序是把纪律按下标的一定增量分组,对魅族使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,每个文件恰被分成1组,算法便终止。 归并排序 规定排序是采用分治法的一个非常典型的应用。归并排序的思想就是先地柜分解数组,在合并数组。 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数原创 2020-08-26 15:39:51 · 322 阅读 · 0 评论 -
栈
栈 有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素。它的特点在于只能允许容器的一端进行加入数据和输出数据的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。 队列 队列是指允许在一端进行插入,而在另一端进行删除操作的线性表。 队列是一种先进先出的线性表。允许插入的一端为队尾,允许删除的一端为对头。队列不允许在中间部位进行操作! 栈结构实现 栈可以用顺序表实现,也可以用链表实现 ...原创 2020-08-25 21:40:16 · 111 阅读 · 0 评论 -
双向链表
双向链表 每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。原创 2020-08-25 13:38:38 · 89 阅读 · 0 评论 -
顺序表
顺序表基本形式 顺序表有两种基本形式 一个顺序表的完整信息包括两部分,一部分是表中的元素集合,另一部分是为实现正确操作而需记录的信息,即有关表的整体情况的信息,这部分信息主要包括元素存储区的容量和当前表中已有的元素个数两项。 元素存储区替换 一体式结构由于顺序表信息区与数据区连续存储在一起,所以若想要更换数据区,则只能整体搬迁。分离式结构若想要更换数据区,只需将表信息区中的数据区链接地址更新即可,而该顺序表对象不变。 元素存储区扩充 1.每次扩充增加固定数目的存储位置,如每次扩充增加10个元素位置,这种原创 2020-08-24 13:09:10 · 108 阅读 · 0 评论