数据结构就那么回事
CodeXiaoMai
这个作者很懒,什么都没留下…
展开
-
程序猿必修课之数据结构(一)数据结构基本概念和术语
本文将“数据结构”分为 “数据” 和 “结构” 两部分。原创 2017-04-17 16:39:15 · 433 阅读 · 0 评论 -
程序猿必修课之数据结构(二)算法和算法的复杂度
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。原创 2017-04-17 16:42:22 · 515 阅读 · 0 评论 -
程序猿必修课之数据结构(四)线性表2
原文出自:http://www.jianshu.com/p/94fc4be7d61e上一章:程序猿必修课之数据结构(三)线性表1上篇我们复习的线性表的顺序存储结构,它的最大缺点就是:插入和删除是需要移动大量元素,造成时间的浪费。导致这个问题的原因是,相邻两个元素的存储位置也具有邻居关系,也就是说它们在内存中是挨着的,中间没有空隙,当然就无法快速插入,而删除后,当中就会留出空隙,自然需要弥补。链式存储原创 2017-04-17 16:44:56 · 380 阅读 · 0 评论 -
程序猿必修课之数据结构(五)线性表3
原文:http://www.jianshu.com/p/082eb306d228上一章:程序猿必修课之数据结构(四)线性表2循环链表对于单链表,由于每个结点只存储了向后的指针,到了链表末尾就停止了向后链的操作,这样,结点就无法找到它的前驱结点了。将单链表中终端结点的指针域由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。循环链表和单链表的主要差异就在原创 2017-04-17 16:46:00 · 291 阅读 · 0 评论 -
程序猿必修课之数据结构(八)队列
文本同步发布于简书:http://www.jianshu.com/p/5d020c00fcb8上一章:程序猿必修课之数据结构(七)栈2队列的定义队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。队列的抽象数据类型队列是特殊的线性表,因此它的各种原创 2017-05-02 14:32:33 · 471 阅读 · 0 评论 -
程序猿必修课之数据结构(六)栈1
原文:http://www.jianshu.com/p/66da0b8935ac上一章:程序猿必修课之数据结构(五)线性表3栈的定义栈(Stack)是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称 LIFO 结构。从上面这两段话,可原创 2017-04-17 16:46:34 · 391 阅读 · 0 评论 -
程序猿必修课之数据结构(三)线性表1
原文出自:http://www.jianshu.com/p/5980a6755ab2上一章: 程序猿必修课之数据结构(二)算法和算法的复杂度线性表的定义线性表(List):零个或多个数据元素的有限序列。首先它是一个序列。也就是说,元素之间是有顺序的,若存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。其次,线性表强调是有限的。线性表元素的个数 n (n >=原创 2017-04-17 16:44:10 · 328 阅读 · 0 评论 -
程序猿必修课之数据结构(七)栈2
本文同步发表于:http://www.jianshu.com/p/5728607674e4上一章:程序猿必修课之数据结构(六)栈1栈的应用——递归斐波那契(Fibonacci)是一个经典的递归例子。斐波那契数列数字 1,1,2,3,5,8,13……构成一个序列,它的特点是:前面相邻两项之和是后一项的值。用数学函数来定义是:用递归实现打印出前 40 位的斐波那契数...原创 2017-04-27 18:08:21 · 283 阅读 · 0 评论 -
程序猿必修课之数据结构(十)树1
上一章:程序猿必修课之数据结构(九)串 树是一对多的数据结构树的定义树(Tree)是 n (n ≥ 0)个结点的有限集。n = 0 时,称为空树。在任意一棵非空树中:有且仅有一个特定的根(root)结点。当 n > 1 时,其余结点可分为 m (m > 0) 个互不相交的有限集,其中每一个集合本身又是一棵树,并且称之为根的子树(SubTree)。...原创 2018-07-10 18:24:40 · 232 阅读 · 0 评论