逆向打印、销毁、查找结点之递归实现
2017-04-10 22:12
232 查看
#include<iostream> using namespace std; template <class T> struct Node { T data; Node<T>* pNext; }; //逆向打印单链表 template<class T> void PrintNodeFromTailtoHead(Node<T>* pHead) { if(pHead) { PrintNodeFromTailtoHead(pHead->pNext); cout<<pHead->data<<endl; } } //逆向摧毁链表中的各个节点 template<class T> void destroyList(Node<T>* &pHead)//这里必须是引用或者二级指针 { if(pHead) { destroyList(pHead->pNext); delete pHead; pHead=NULL; } } //在单链表中逆向查找数据为data的节点 template<class T> Node<T>* FindNode(Node<T>* pHead,T data) { if(pHead) { Node<T>* pNode=FindNode(pHead->pNext,data); if(pNode) return pNode; if(pHead->data==data) return pHead; } return NULL; } int main() { Node<int>* p1=new Node<int>; Node<int>* p2=new Node<int>; Node<int>* p3=new Node<int>; p1->data=1; p2->data=2; p3->data=3; p1->pNext=p2; p2->pNext=p3; p3->pNext=NULL; //PrintNodeFromTailtoHead(p1); //destroyList(p1); return 0; }
相关文章推荐
- 逆向打印字符串--递归实现
- 在二叉搜索树(BST)中查找第K个大的结点之非递归实现
- 二叉查找树带父节点指针的创建,销毁,查找,删除,插入,找前驱后继,找最小值最大值(递归和非递归的实现)
- 二叉树的查找、二叉树高度、二叉树获得双亲结点、构造二叉树、二叉树的广义表表示法、二叉树的插入删除、二叉树的非递归实现
- 自己写的一个根据结点名称查找CTreeCtrl树中对应结点的方法(用的是递归思想)
- [整理]二分查找搜索算法原理及递归,迭代方法实现
- java实现的递归方法逆序对查找
- Java实现折半查找(二分查找)的递归和非递归算法
- 数据结构C#实现-二叉查找树的创建,查找,以及各种递归(非递归)遍历算法
- java递归实现二分查找
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 递归实现查找目录下的所有子目录和文件
- 一个递归和非递归实现二分查找的代码
- Java实现折半查找(二分查找)的递归和非递归算法
- 用递归实现的二分查找
- 递归实现倒序打印
- 使用C#非递归实现查找树节点
- 用c实现HASH表创建、插入、查找、删除、打印(欢迎高手指点)
- 哈弗曼树的实现(输入结点与权值,打印哈弗曼树)
- 递归实现倒序打印