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 ;}