利用非递归方法实现二叉树的先序遍历
来源:互联网 发布:大疆无人机 人工智能 编辑:程序博客网 时间:2024/04/28 13:38
#include<iostream>#include<stack>#define N 7using namespace std;typedef struct node{struct node *leftChild;struct node *rightChild;int data;}BiTreeNode, *BiTree;// 生成一个结点BiTreeNode *createNode(int i){BiTreeNode * q = new BiTreeNode;q->leftChild = NULL;q->rightChild = NULL;q->data = i;return q;}BiTree createBiTree(){BiTreeNode *p[N];int i;for(i = 0; i < N; i++)p[i] = createNode(i + 1);// 把结点连接成树for(i = 0; i < N/2; i++){p[i]->leftChild = p[i * 2 + 1];p[i]->rightChild = p[i * 2 + 2];}return p[0];}void preOrderTraverse(BiTree T){if(NULL == T)return;BiTreeNode *p = T;stack<BiTreeNode *> s;s.push(T); while(!s.empty()){// 根进根出p = s.top();cout << p->data << " ";s.pop();// 根的右孩子被压入栈if(NULL != p->rightChild)s.push(p->rightChild);//根的左孩子被压入栈if(NULL != p->leftChild)s.push(p->leftChild);} // end while(!s.empty()) cout << endl;}int main(){BiTree T = createBiTree();cout << "先序遍历:" << endl;preOrderTraverse(T);return 0;}
- 二叉树的先序遍历非递归实现方法
- 利用非递归方法实现二叉树的先序遍历
- 利用非递归方法实现二叉树的先序遍历
- 先序遍历二叉树的非递归方法
- 如何实现二叉树的非递归先序遍历
- [二叉树专题]:先序遍历二叉树的递归实现与非递归实现
- 二叉树的先序递归以及非递归遍历
- 二叉树的先序递归,非递归遍历
- 利用栈实现二叉树的先序,中序,后序遍历的非递归操作
- 利用栈实现二叉树的先序,中序,后序遍历的非递归操作
- C++ 二叉树的遍历---先序遍历(非递归)
- 数据结构之 非递归方法先序遍历二叉树
- 【二叉树遍历】先序---非递归实现
- 栈实现二叉树非递归先序遍历
- 二叉树的先序、中序、后序遍历的递归和非递归实现
- 二叉树(一) 先序遍历、中序遍历、后续遍历、层次遍历的递归与非递归实现
- 二叉树的先序、中序、后续遍历的递归和非递归实现
- 二叉树的先序遍历 很有想法的递归与非递归实现
- Java和Jsp 中 request.getHeader() 详细说明
- 架构妄想:AJAX + REST
- ngnix 时钟 ngx_gettimeofday 更新时间
- 探讨笨蛋问题!!!
- sql server取当天8点到20点的数据
- 利用非递归方法实现二叉树的先序遍历
- 关于网络爬虫
- 公告:CSDN新版论坛即将正式上线,周末暂停服务
- 游戏服务器运维
- linux下scp命令(远程文件拷贝)详解
- 求水花仙数
- Java 赋值运算符连串赋值
- JAVA 学习笔记;
- VS2010 建模 (UML用例图,UML类图)