雅虎三道面试题
34、编程实现:把十进制数(long 型)分别以二进制和十六进制形式输出,不能使用 printf 系列
35、编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
36、有双向循环链表结点定义为:

struct node
 {
 int data;
 struct node *front,*next;
 };


有两个双向循环链表 A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中

data 值相同的结点删除。


解答:

34、编程实现:把十进制数(long 型)分别以二进制和十六进制形式输出,不能使用 printf 系列

35、编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"

36、有双向循环链表结点定义为:

struct node
 {
 int data;
 struct node *front,*next;
 };


有两个双向循环链表 A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中

data 值相同的结点删除。




用两个向量A_vec、B_vec分别存储链表A、B的元素值,将A_vec、B_vec排序,

用类似归并排序的方法把A_vec、B_vec中值相同的元素放到向量common_vec中。

分别遍历链表A、B,用二分查找法查看每个节点元素是否在common_vec中。