数据结构与算法
jim_cainiaoxiaolang
我热爱大数据开发,希望大家多交流
展开
-
一步一步学习数据结构(2)-链表及其操作
(1)单链表的节点插入操作 假设p指向一个节点,要将s所指节点插入p所指节点之后的操作如下: s->next=p->next; p->next=s;(2)单链表的节点删除操作节点a,节点b,......假设p为指向a的指针,只需要将p的指针域next指向原来p的下一个节点的下一个节点即可。即:(注意释放所删除节点的内存空间)q=p->next原创 2016-12-11 19:51:10 · 466 阅读 · 0 评论 -
一步一步学习数据结构(1)-时间空间复杂度
时间复杂度将算法中基本操作的执行次数作为算法时间复杂度的度量。其实计算算法的时间复杂度,就是给出相应的数量级,f(n)与n无关时,时间复杂度T(n)=O(1);当f(n)与n是线性关系时,T(n)=O(n).........常用的各种时间复杂度大小的比较:O(1)) 计算时间复杂度的步骤如下:(1)确定算法中的基本操作以及问题的规模;(2)根据基本操作执行情况计算出原创 2016-12-11 19:49:34 · 275 阅读 · 0 评论 -
一步一步学习数据结构(3)-链表及其操作实战
本次题目全部选自剑指offer,主要是为了锻炼复习一下链表部分的基础知识。(全都java实现)(1)剑指offer 5:从尾到头打印链表题目大致为: 输入一个链表的头结点,从未到头反过来打印每个结点的值。 思路:题目的要求是进行从尾到头输出,而链表的查找只能是顺序查找,栈的结构满足这样的条件:先进后出。同样,也可以使用递归的方式求解。code:package co原创 2016-12-13 12:28:51 · 458 阅读 · 0 评论 -
【数据结构与算法】内部排序总结(附各种排序算法源码)
内部排序总结 这篇博文我们简要地总结下各种内部排序方法。 这10种排序算法中,前面7种属于建立在“比较”基础上的排序算法,通过决策树已经证明,任何基于比较进行的排序算法的时 间复杂度不可能再优于O(n*logn)。后面3种不是建立在比较的基础上的,因此,可以达到线性运行时间。 下面我们给出各种排序方法的时空复杂度的表格(属于自己总结,有不对的地方,希望大家指正或补转载 2016-12-08 10:50:42 · 306 阅读 · 0 评论 -
一步一步学习数据结构(4)-树和二叉树基础知识
(1)树中的基本术语结点:结点不仅包含数据元素,而且包含指向子树的分支。结点的度:结点拥有的子树的个数或者分支的个数。树的度:树中各结点度的最大值。叶子结点:又叫做终端结点,指度为0的结点。非终端结点:又叫做分支节点,指度不为0的结点。孩子:结点的子树的跟。双亲:与孩子的定义对应。兄弟:同一个双亲的孩子之间互为兄弟。祖先:从根到某结点的路径上的所有结点,都是这个原创 2016-12-14 21:29:09 · 649 阅读 · 0 评论