如何用C++递归的方法来将循环链表的unique data找出来
来源:互联网 发布:java随机生成汉字名字 编辑:程序博客网 时间:2024/06/14 00:58
这道题目是小编考期中的题目,当时再做的时候,尽然忘记了一个条件,最后跑出无限循环。哎!可惜了。
不说了,直接上代码:
//This is the list.h file#include<iostream>#include<cctype>#include<cstring>using namepace std;struct node{ int data; node * next;};class list{ public: //These functions are provided list(); //Supplied ~list(); //Supplied void build(); //Supplied void display(); //Supplied //Display the unique data in the CLL //Return number of unique data int count_unique(); private: //Display the unique data in the CLL //Return number of unique data int count_unique(node * rear, node * head); int compare(node * head, int num); node * rear;};
下面是实现这几个函数代码展示:
//This is the clist.cpp#include "clist.h"int list::count_unique(){ return count_unique(rear,rear->next);}int list::count_unique(node * rear, node * head){ if(!head || !rear) return 0; if(head != rear) { if(compare(rear->next,head->data) == 1) { cout<<head->data<<" "; return count_unique(rear,head->next) + 1; } else { return count_unique(rear,head->next); } } else { if(compare(rear->next,head->data) == 1) { cout<<head->data<<" "; return 1; } else return 0; }}//因为这个是循环链表//所以在找unique的时候,就得考虑到如何防止无限循环int list::count_unique(node * head, int num){ if(!head) return 0; if(head != rear) { if(head->data == num) return compare(head->next,num) + 1; else return compare(head->next,num); } else { if(head->data == num) return 1; else return 0; }}
下面是结果的展示:
阅读全文
0 0
- 如何用C++递归的方法来将循环链表的unique data找出来
- 如何用C++递归来删除所有的BST节点
- 如何用两个栈来实现队列的方法
- 如何用两个栈来实现队列的方法
- 【C语言】如何用递归的方法实现n^k
- 如何用Data Recovery Wizard 来恢复被格式化的硬盘中的数据
- 如何用C++递归来查找BST中的根节点的inorder successor
- 如何用C++递归来实现copy even data from the original BST
- 如何用正确的方法来写出质量好的软件的75条体会(zz)
- 如何用正确的方法来写出质量好的软件的75条体会
- 如何用正确的方法来写出质量好的软件的75条体会
- 如何用正确的方法来写出质量好的软件的75条体会[转]
- 如何用正确的方法来写出质量好的软件的75条体会[转]
- 如何用正确的方法来写出质量好的软件的75条体会
- 如何用正确的方法来写出质量好的软件的75条体会-
- 如何用正确的方法来写出质量好的软件的75条体会[转贴]
- 如何用正确的方法来写出质量好的软件的75条体会【转载】
- 如何用正确的方法来写出质量好的软件的75条体会
- pycharm平台下的Django教程
- 循环神经网络(RNN)反向传播算法(BPTT)
- HTTP详解(1)-工作原理
- iOS手机版本号、序列号、应用名称等相关字段获取
- Docker学习(1)基础命令 和 构建nginx web服务
- 如何用C++递归的方法来将循环链表的unique data找出来
- 查看本机ip等配置
- 图像边缘检测——一阶微分算子 Roberts、Sobel、Prewitt、Kirsch、Robinson(Matlab实现)
- Java基础------重载
- sed实践
- 由Google Protocol Buffer的小例子引起的g++编译问题
- Four Operations HDU
- C#实现图片切割的方法
- HTTP详解(2)-请求、响应、缓存