编程题
第一题
设有两个循环单链表,链表头指针分别为 L1 和 L2,编写一个函数将链表 L2 链接到 L1 之后,要求链接后的链表仍保持循环链表的形式,请完成以下代码。
typedef int ElemType;
struct Node {
Elementype data;
struct Node next;
} LNode;
LNode * Link(LNode *L1, LNode *L2)
{ // 将循环链表 L2 链接到循环链表 L1 之后,使之仍保持循环链表的形式
LNode *p, *q; p=L1; q=L2;
return L1;
}
第二题
已知一个带有头结点的单链表,假设该链表只给出了头指针 L,在不改变链表的前提下, 请设计一个算法,查找链表中倒数第 m个位置上的结点(m为正整数)。若查找成功,算法打印出该结点 data 域的值,并返回 1,否则,只返回 0。请完成以下代码。
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
int search_m(LinkList L, int m)
{ // 查找单链表 L倒数第 m个结点,
并打印该结点 data 域值
}