遇到的问题:
1.c语言中求随机数
int n;
srand((unsigned)time(NULL)); /*随机种子*/
n=rand()%(Y-X+1)+X; /*n为X~Y之间的随机数*/
3.合并两个链表要注意如果两个表长不一样,走到短的链表的最后一个结点,出循环,然后进行挂链
实现功能的部分代码:
//实现两个链表的交插合并(a1,b1,a2,b2...)
void combinelink(ElemSN *h1,ElemSN *h2)
{
ElemSN *q1,*q2,*p1;
p1=h1;
q1=h2;
q2=q1->next;
while(p1->next&&q1->next)
{
q1->next=p1->next;
p1->next=q1;
p1=q1->next;
q1=q2;
q2=q2->next;
}
if (p1->next==NULL)
p1->next=q1;
if (q1->next==NULL)
{
q1->next=p1->next;
p1->next=q1;
}
}
分析:<1>要在主函数外写的话只能return一个值,那就是说主链的头指针不能动,如果主链放
奇数,那就新建一条链放偶数结点最后要return的值就是新建的链的头指针。
<2>有两种方法可以选择,第一种,依次判断主链中的结点的数据域的值,若为奇数,则p=p->next;否则进行删除,注意(是在主链中进行删除,并非真正的删除),如果为第一个偶数结点,用两个指针指上,从第二个开始进行挂链。(第一个偶数结点从主链删除时给