if(heada->num
<=
headb->num)//判断第一个节点是在a还是b上,小的作为新链表的头结点,然后设置指示指针pa,pb,p分别在a链表,b链表,新链表上向后移动
{head=heada
pa=heada->next
pb=headb}
else
{head=headb
pa=heada
pb=headb->next}
p=head
while(pa
&&
pb)//当a,b链表都没到达尾部时,比较a,b链表上当前指示指针pa,pb所指节点的大小,并把新链表的p指向较小的(pa或pb所指的),然后向后移动一下
{
if
(pa->num<=pb->num)
{p->next=pap=p->nextpa=pa->next}
else
{p->next=pbp=p->nextpb=pb->next}
}
if(pa)//说明a链表没到尾部,b链表已结束,直接把a链表剩下的部分接在新链表最后
{
p->next=pa
tail=taila
}
if(pb)//同上b链表后面的部分接在新链表后
{
p->next=pb
tail=tailb
}
tail->next=NULL
/***********end***********/
#include <stdio.h>#include <string.h>
const char *s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
int main(void)
{
int i, j
char d[20], e[20], buf[80]
scanf("%s", d)
scanf("%s", e)
for (i = 0, j = 0 i < strlen(s) i++) {
char tmp[2] = { s[i], 0 }
if (strstr(d, tmp) || strstr(e, tmp)) {
buf[j++] = tmp[0]
buf[j++] = ' '
}
}
buf[--j] = '\0'
puts(buf)
return 0
}