12 2017 档案

摘要:我们都知道一个栈的特点是后进先出,如果我们要实现在O(1)的时间内找到一个栈里面的最小值,我们应该怎么解决?如果我们采用遍历获取的思路那必然所需要的时间是O(N)与我们所需要的要求明显不符合,这时候我们通常需要采用的是和前面我们介绍到的栈的压入弹出序列相类似,采用辅助栈的思想。我们不妨构建一个辅助栈 阅读全文
posted @ 2017-12-18 21:50 GoNewLife 阅读(339) 评论(0) 推荐(0)
摘要:当时我在学习这个的时候也是非常不理解这个问题,一个栈的压入和弹出序列的判断一看不就知道了么,还去判断干嘛。只要符合后进先出的规则就行。但是我在这里简单说一下这个压入和弹出序列是怎么回事。就是我们给定假设的两个序列,一个为压入序列,一个为弹出序列。然后我们再通过一个辅助的栈,把压入序列的数据一个一个p 阅读全文
posted @ 2017-12-16 10:13 GoNewLife 阅读(622) 评论(0) 推荐(0)
摘要:今天我们需要学习的是关于数据结构里面经常看到的两种结构,栈和队列。可以说我们是一直都在使用栈,比如说在前面递归所使用的的系统的栈,以及在链表倒序输出时介绍的自定义栈类Stack和使用系统的栈进行递归。那么,在这里我们就讲述一下这两个比较具有特色的或者说关系比较紧密的数据结构之间的互相实现问题。 一: 阅读全文
posted @ 2017-12-16 09:36 GoNewLife 阅读(920) 评论(0) 推荐(0)
摘要:在前面介绍了关于链表的一系列问题,这里我们在介绍一下关于单向链表的反转这个比较具有代表性的算法。在进行反转的时候一定要记住多画图,多去理解在链表进行反转的时候它对于地址的改变,这和数组的数据对换具有很大的不一致。 重要的事情说三遍,地址转换很重要!地址转换很重要!地址转换很重要! 关于单向链表的删除 阅读全文
posted @ 2017-12-15 11:55 GoNewLife 阅读(341) 评论(0) 推荐(0)
摘要:我们在刚遇到这个问题的时候可能最迅速的想法就是把两个链表进行遍历,第一个链表next一下,对第二个链表就进行遍历,查找是否有相同的节点,如果有,那么就是交点,没有就不是。这样可不可以实现我们的功能,答案是当然可以,没有一丝一毫的问题,那么我们可以思考一下这个思路,它所需要的时间花销是不是应该为O(M 阅读全文
posted @ 2017-12-12 10:41 GoNewLife 阅读(542) 评论(0) 推荐(0)
摘要:我们前边已经讨论了关于单向链表的简单功能增删改查的实现,以及通过两个指针获取倒数k个节点以及合并两个有序链表的方法,接下来我们需要讨论的是有关于单向链表的环问题。一个链表是否有环的存在,如果有环那么我们的环的长度是多少,它的起点又在哪里,这都是我们需要考虑的问题。现在我们讨论第一个问题,判断一个链表 阅读全文
posted @ 2017-12-12 09:58 GoNewLife 阅读(298) 评论(0) 推荐(0)
摘要:我们以前在介绍排序算法的时候介绍过一种排序算法叫做归并排序,我们现在需要思考一个问题,能不能利用归并的思想对两个有序的单向链表进行合并。 请把这个方法放在单向链表的第一篇基础方法里面进行测试即可,我们通过代码可以很清楚的观察到通篇利用的就是归并的思想,对于两个有序链表的整合。但是我们在这里需要提出注 阅读全文
posted @ 2017-12-06 23:26 GoNewLife 阅读(3125) 评论(0) 推荐(0)
摘要:我们在做算法的时候或多或少都会遇到这样的问题,那就是我们需要获取某一个数据集的倒数或者正数第几个数据。那么今天我们来看一下这个问题,怎么去获取倒数第K个节点。我们拿到这个问题的时候自然而然会想到我们让链表从末尾开始next K-1 次不就是第K-1个节点了么,但是必须要注意一点,这是单向链表。那么这 阅读全文
posted @ 2017-12-06 20:28 GoNewLife 阅读(1543) 评论(0) 推荐(0)
摘要:链表在我们java中也是一种基础的数据结构,可以理解成是一种和数组同级的数组结构,正如我们所知,在我们使用这集合ArrayList和LinkedList的时候,总会学习底层数组实现的ArrayList和双向链表实现的LinkedList的区别。在这里,我们将要讲说的是单向链表的简单实现,让我们体会一 阅读全文
posted @ 2017-12-05 23:31 GoNewLife 阅读(532) 评论(0) 推荐(0)
摘要:经过前面五篇排序方法的介绍,我们了解到了递归思想以及分而治之的归并和快速排序,当然也涉及到了比较简单易懂的数据值传递冒泡,选择,以及插入排序。可以说每一种排序方式都各有千秋,都适合在不同的环境下进行使用,但是我们有时会不会思考一个问题,那就是我们在学习插入排序的时候的主题思想是将每一个数据取出来,然 阅读全文
posted @ 2017-12-04 23:28 GoNewLife 阅读(3090) 评论(0) 推荐(0)