码迷,mamicode.com
首页 > 其他好文 > 详细

算法训练篇(4)

时间:2014-08-08 21:10:56      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   art   ar   

1.判断一个链表是否存在环,例如下面这个链表就存在一个环:例如N1->N2->N3->N4->N5->N2就是一个有环的链表

c语言版:

bubuko.com,布布扣
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 struct link{
 5     int data;
 6     struct link *next;
 7 };
 8 
 9 int isLoop(struct link* head){
10     struct link* p1,*p2;
11     if(head == NULL || head->next == NULL)
12         return 0;
13     p1 = head;
14     p2 = head;
15     do{
16         p1 = p1->next;
17         p2 = p2->next->next;
18     }while(p1 != NULL && p2 != NULL && p1 != p2);
19     if(p1 == p2)
20         return 1;
21     else
22         return 0;
23 
24 }
25 
26 int main()
27 {
28     
29 }
View Code

 

2.单向链表的反转

c语言版:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 struct link{
 5     int data;
 6     struct link *next;
 7 };
 8 
 9 void reserve(struct link* head){
10     if(head == NULL || head->next == NULL)
11         return;
12     struct link * pre,*nex,*p;
13     pre = head;
14     p = head->next;
15     nex = head->next->next;
16     do{
17         p->next = pre;
18         pre->next = NULL;
19         pre = p;
20         p = nex;
21         nex = nex->next;
22     }while(nex != NULL);
23     head = p;
24 
25 }
26 
27 int main()
28 {
29 
30 }

c语言(递归法):

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 struct link{
 5     int data;
 6     struct link *next;
 7 };
 8 //递归法
 9 struct link* reserve(struct link* p,struct link* head){
10     if(p == NULL || p->next == NULL){
11         head = p;
12     }
13     else{
14         struct link* temp = reserve(p->next,head);
15         temp->next = p;
16         return p;
17     }
18 }
19 
20 int main()
21 {
22 
23 }

 

算法训练篇(4),布布扣,bubuko.com

算法训练篇(4)

标签:style   blog   http   color   os   io   art   ar   

原文地址:http://www.cnblogs.com/YESheng/p/3900031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!