首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

南京市三星面试准备2-链表

2013-10-08 
南京三星面试准备2--链表1、复杂链表的复制2、给定单链表,检测是否有环。使用两个指针 p1,p2 p1,p2 p1,p2 p1,

南京三星面试准备2--链表

1、复杂链表的复制

南京市三星面试准备2-链表南京市三星面试准备2-链表南京市三星面试准备2-链表

南京市三星面试准备2-链表

2、给定单链表,检测是否有环。
使用两个指针 p1,p2 p1,p2 p1,p2 p1,p2 p1,p2 p1,p2 从链表头开始遍历, p1 每次前进一步, p2 每次前进两步。如果 每次前进两步。如果 每次前进两步。如果 每次前进两步。如果 每次前进两步。如果 每次前进两步。如果 p2 到达链表尾部,说明无环否则 达链表尾部,说明无环否则 达链表尾部,说明无环否则 达链表尾部,说明无环否则 达链表尾部,说明无环否则 达链表尾部,说明无环否则 达链表尾部,说明无环否则 p1 、p2 必然会在某个时刻相遇 (p1==p2)(p1==p2)(p1==p2)(p1==p2)(p1==p2)(p1==p2)(p1==p2)(p1==p2),从而检测到链表中 ,从而检测到链表中 ,从而检测到链表中 ,从而检测到链表中 ,从而检测到链表中 有环。
3、给定单链表,如果有环的话请返回从头结点进入第一个节。
我们可以检查链表中是否有环。如果那么 p1、p2 重合点 p 必然在环中。 从 p 点断开环,方法 为: p1=p, p2=p>next , p>next,  p->next=NULL。此时,原单链表可以看作两 条单链表,一从 条单链表从 head 开始,另一条从p2开始,可以运用寻找两个单链表的公共节点来做。

4.(1) 编写实现链表排序的一种算法。说明为什么?
Merge sort 

(2)编写实现数组排序的一种算法。说明为什么?

 quick sort

(3)实现函数strstr

包含文件:string.h函数名: strstr函数原型:extern char *strstr(char *str1, char *str2);功能:从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。返回值:返回该位置的指针,如找不到,返回空指针。

热点排行