您的位置:首页 > 其它

电源短接启动测试方法

2010-07-06 18:25 106 查看
 

/**
*链表逆序的递归/非递归算法
*/
#include <stdio.h>
typedef int Item;
typedef struct node
{
Item item;
struct node *next;
}Node, *List;

/*reverse1~2是不带头结点的逆序算法*/
List reverse1(List l)
{
Node *p1,*p2;
if(l==NULL)
return l;
p1=l->next;
l->next=NULL;
while(p1!=NULL){
p2=p1->next;
p1->next=l;

l=p1;
p1=p2;
}
return l;
}
List reverse2(List l)
{
if(l==NULL || l->next==NULL)
return l;
Node *p=reverse2(l->next);
l->next->next=l;
l->next=NULL;
return p;
}
/*reverse3~4是带头结点链表的逆序算法*/
void reverse3(List l)
{
Node *p1,*p2,*p3;
if(l==NULL || l->next==NULL)
return;
p1=l->next;
p2=p1->next;
p1->next=NULL;
while(p2!=NULL){
p3=p2->next;
p2->next=p1;
p1=p2;
p2=p3;
}
l->next=p1;
}
void reverse4(List l, Node *first)/*此算法不是很好,需要在函数外判断l!=NULL*/
{
if(first==NULL || first->next==NULL){
l->next=first;
return;
}
reverse4(l,first->next);
first->next->next=first;
first->next=NULL;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: