- 博客(6)
- 收藏
- 关注
面试题:单链表O(1)时间复杂度内删除指定结点
给定头结点和指定结点,删除指定结点在时间复杂度为O(1) 思路:该节点的前驱无从着手,但后继容易获得。若该节点非末尾结点,则可以把后继结点复制给该节点。代码:node.data=node.next.data; node.next=node.next.next; 若该节点为末尾结点,即node.next==nu...
2015-01-18 10:05:01 572
面试题:找出单链表倒数第N个元素
第一种方法先求出元素个数,在遍历元素个数-n个,时间复杂度为:O(N+N-n)=O(2N-n)。 第二种设置俩个指针,第一个先走N步,第二个开始走。俩者速度一样,时间复杂度为O(N)。 代码如下: package dataStructtion.linear; /** * 获取单链表倒数第N个元素 * @author xiucai */ publi...
2015-01-18 09:28:20 1098
原创 面试题:找出未知单链表中点元素
腾讯的面试题:找出未知单链表中点元素? 俩种方法: 第一种:全部遍历算出总长度为length;再遍历length/2个元素。时间复杂度为O(3N/2) 第二种:设置快慢指针。search速度为2,middle速度为1。当search完一遍时,middle正好 ...
2015-01-18 08:36:43 194
单链表的反转
算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。尤其对于我等应届毕业生来说,能出得了手的也只有这些了。 对于校园招聘来说,互联网公司还是喜欢拿单链表的反转考验我们应届生的。话不多说,代码如下: package dataStructtion.linear; /** * 单链表的反转 * @author xiuc...
2015-01-17 20:09:38 106
原创 线性表的单链表实现
数据结构和算法是程序的灵魂,基本的数据结构分为:线性结构、树、图。线性结构又分为顺序实现的线性结构和链式实现的线性结构。链式线性结构是非随机存取结构,其get()、set()的时间复杂度是O(N);若已知要插入或删除的节点位置的话,其insert()、remove()的时间复杂度为O(1)。否则需要进行遍历操作,这时insert()、remove()的时间复杂度为O(N)。 ...
2015-01-17 17:20:39 150
线性表的顺序实现
数据结构和算法是程序的灵魂,基本的数据结构分为:线性结构、树、图。线性结构又分为顺序实现的线性结构和链式实现的线性结构。顺序实现的线性结构是一种随机存取结构,适合遍历,寻找元素;而不适合插入和删除操作。其get()、set()的时间复杂度为O(1),而插入和删除的时间复杂度为O(N)。使用java语言实现顺序存储的线性结构代码如下: 线性表的抽象数据类型 package ...
2015-01-17 13:22:31 116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人