实现链表的逆置:
代码一:
int nizhi(linklist *L)
{
if(L==NULL)
{
printf("入参为空\n");
return -1;
}
int temp;
linklist *p=L->next;
for(int i=1;i<=L->len/2;i++)
{
linklist *p2=p;
for(int j=1;j<=L->len-2*i+1;j++)
{
p2=p2->next;
}
temp=p->data;
p->data=p2->data;
p2->data=temp;
p=p->next;
}
return 0;
}
代码二:
int nizhi2(linklist *L)
{
if(L==NULL)
{
printf("入参为空\n");
return -1;
}
linklist *p,*temp;
p = L->next;
L->next = NULL;
while(p!=NULL){
temp = p;
p = p->next;
temp->next = L->next;
L->next = temp;
}
return 0;
}
代码实现:
冒泡排序完成升序:
int maopao(linklist *L)
{
if(L==NULL)
{
printf("入参为空\n");
return -1;
}
linklist *p=L->next;
linklist *p2=p;
int temp;
for(int i=1;i<L->len;i++)
{
p2=p;
for(int j=0;j<L->len-i;j++)
{
if(p2->data>p2->next->data)
{
temp=p2->data;
p2->data=p2->next->data;
p2->next->data=temp;
}
p2=p2->next;
}
}
}
代码实现:
递归实现斐波那契数列,1,1,2,3,5,8,13,21,34,55,89,144……:
#include <stdio.h>
int feibo(int num)
{
if(num==0||num==1)
{
return 1;
}
return feibo(num-2)+feibo(num-1);
}
int main(int argc, const char *argv[])
{
int arr[10]={0};
for(int i=0;i<10;i++)
{
arr[i]=feibo(i);
}
for(int i=0;i<10;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
代码实现:
代码重敲一遍