专注笔试算法20年(C语言版)

1.C语言实现链表数据的反转({1,2,3,4}->{4,3,2,1}).

int trav(PNode *head){
PNode p_1,p_2,tmp;
//判断参数是否有效
if(*head == NULL)
return ;
//判断是否少于两个节点
if((*head)->next == NULL)
return ;
//处理多余两个节点的情况
p_1 = *head;
p_2 = (*head)->next;
tmp = (*head)->next->next;
do{
p_2->next = p_1;
p_1 = p_2;
p_2 = tmp;
} while (tmp&&((tmp=tmp->next)||));
//逆序过后设置头指针
(*head)->next = NULL;
*head = p_1;
//逆序完成 返回
return ;
}

2.一个人可以一次上一个或是两个或是3个台阶,问上到第n阶台阶,有几种方法,C语言实现.

 #include

 int main(void)

 {

 int f,i,f1=,f2=;

 printf("请输入楼梯数");

 scanf("%d",&i);

 printf("\n");

 if(i==)

 {printf("有1种走法");}

 if(i==)

 {printf("有2种走法");}

 if(i>=){

 do{f=f1+f2;

 f1=f2;

 f2=f;

 i--;}while(i->=);

 printf("有%d种走法",f);}

 return ;}
上一篇:Oracle的常见错误及解决办法


下一篇:MySQL出现时区错误的解决方法