利用递归查找链表中与数据成员值与形参n相同的结点
2016-10-07 19:01
253 查看
#include<stdio.h> #include<stdlib.h> typedef struct node { int date; struct node *next; }node; int n=0; node * Creatlink(struct node * tp,int k); node * find_nodes(struct node * tp,int k); int main() { int tmp; struct node * head=NULL, *tail=NULL; head=Creatlink(tail,6); if (tail == NULL) { puts("NULL1"); } tail=find_nodes(head,3); if (tail == NULL) { puts("NULL2"); } printf("%d\n",tail->date); return 0; } node * Creatlink(struct node * tp,int k) { if(k==0) return NULL; else{ tp=(struct node *)malloc(sizeof(node)); tp->date=k; tp->next=Creatlink(tp->next,k-1); } return tp; } node * find_nodes(struct node * tp,int k) { struct node * tmp; if(tp==NULL) return NULL; if(tp->date == k) return tp; tmp=find_nodes(tp->next,k); if(tmp==NULL) return NULL; if(tmp) return tmp; return find_nodes(tp->next->next,k); } 这根本不是一个好的代码,思路不清晰,代码不简洁 node * find_nodes(struct node * tp,int k) { if(tp){ if(tp->date == k) return tp; else return find_nodes(tp->next,k); //这里的这个return最好还是写上 } else NULL; }
相关文章推荐
- 【数据结构基础】链表的倒数第M个结点的查找
- 结构之美:查找单链表指定位置结点的数据
- 递归在单链表中查找某个值为data的结点
- 多个有序链表,找出数据均相同的结点
- 将两个递增的链表合并成一个递减的链表(相同的元素只留下一个),并要求利用原表结点
- 数据结构之快慢指针查找链表中间结点
- 【数据结构作业二】写出单链表结点的结构体类型定义及查找、插入、删除算法,并以单链表作存储结构,实现有序表的合并
- 单链表的使用(插入,查找,删除,链表的倒置,删除相同结点)
- 要查找相同数据并且要把这些数据显示出来 编个程序
- 查找链表倒数第N个结点的地址(C++)
- 查找链表中倒数第k个结点
- 查找链表相同节点
- 用XML结点的属性值查找相同结点的其它属性值[C#]
- 每天一道算法题7 查找链表中倒数第k个结点
- 【转载】利用CPU缓存的特性优化数据存储---数组vs链表
- 查找链表中倒数第k个结点
- 每天一道算法题7 查找链表中倒数第k个结点 ; 输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个
- 查找链表中倒数第k个结点
- 程序员面试题精选100题(09)-查找链表中倒数第k个结点
- 查找链表中倒数第k个结点