`
vearne
  • 浏览: 18905 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

二叉树的中序遍历

 
阅读更多

 

#include <iostream>

#include <stack>

using namespace std;

struct node{

int data;

struct node* lchild;

struct node* rchild;

};

typedef struct node Node;

void inOrderTraverse(Node* root){

Node* p = root;

stack<Node*> s;

while(p||!s.empty()){

if(p){

s.push(p);

p = p->lchild;

}else{

p = s.top();

s.pop();

cout<<p->data<<" ";

p = p->rchild;

}

}

}

int main(){

Node node0={0,NULL,NULL};

Node node1={1,NULL,NULL};

Node node4={4,NULL,NULL};

Node node2={2,NULL,NULL};

Node node3={3,NULL,NULL};

Node node5={5,NULL,NULL};

Node node6={6,NULL,NULL};

Node node7={7,NULL,NULL};

Node node8={8,NULL,NULL};

node0.lchild = &node1;

node0.rchild = &node4;

node1.lchild = &node2;

node1.rchild = &node3;

node4.lchild = &node5;

node4.rchild = &node8;

node5.lchild = &node6;

node5.rchild = &node7;

inOrderTraverse(&node0);

}


分享到:
评论

相关推荐

    Java二叉树中序遍历

    中序遍历是二叉树遍历的一种方法,它按照“左-根-右”的顺序访问树中的所有节点,对于理解树的性质和执行某些操作非常有用。本课程设计将详细介绍如何使用Java编程语言实现二叉树的中序遍历。 首先,我们先构建...

    二叉树先序遍历、中序遍历和后序遍历非递归算法 C++源码

    用C++写的二叉树先序遍历、中序遍历和后序遍历非递归算法

    课程设计报告数据结构二叉树遍历演示_二叉树中序遍历怎么看

    二叉树遍历主要包括前序遍历、中序遍历和后序遍历,这三种遍历方法在理解和应用二叉树时具有基础性的地位。 **1. 二叉树遍历概念** 二叉树是一种特殊的树形数据结构,每个节点最多有两个子节点,通常分为左子节点和...

    数据结构 二叉树的中序遍历

    中序遍历是二叉树遍历的一种基本方法,对于理解二叉树的特性和操作至关重要。在中序遍历过程中,我们按照“左-根-右”的顺序访问树中的所有节点。这通常用于打印二叉搜索树(BST)的排序序列,因为BST的中序遍历结果...

    C语言实现二叉树的中序遍历(非递归)

    ### C语言实现二叉树的中序遍历(非递归) #### 背景介绍 在计算机科学中,二叉树是一种常见的数据结构,在算法设计与分析领域扮演着极其重要的角色。对于二叉树的操作主要包括查找、插入、删除以及各种形式的遍历...

    C语言实现二叉树的中序遍历(递归)

    ### C语言实现二叉树的中序遍历(递归) #### 一、知识点概述 在计算机科学领域,二叉树是一种重要的数据结构,而遍历则是操作与处理这种数据结构的基本方法之一。二叉树的遍历可以分为三种基本方式:前序遍历、...

    中序线索化二叉树及中序遍历

    在二叉树的遍历过程中,中序遍历是一种常见的方法,它按照“左-根-右”的顺序访问每个节点。在实际应用中,为了在非递归情况下高效地进行中序遍历,引入了线索二叉树的概念,特别是中序线索化二叉树。 中序线索化...

    c++二叉树中序遍历

    二叉树的遍历是理解其结构和操作的关键部分,其中中序遍历是三种主要遍历方式之一(另外两种是前序遍历和后序遍历)。中序遍历通常按照“左-根-右”的顺序访问树中的节点。 在给定的代码中,我们看到一个模板类`...

    二叉树 中序遍历c++实现

    中序遍历是二叉树遍历的一种重要方法,它按照左子树-根节点-右子树的顺序访问每个节点。本文将详细讲解如何用C++实现二叉树的中序遍历。 首先,我们需要定义一个二叉树节点的结构体。这个结构体通常包含三个成员:...

    中序遍历二叉树非递归算法

    在IT领域,尤其是在数据结构与算法的学习中,中序遍历二叉树的非递归算法是一个关键且实用的知识点。通常,我们首先通过递归来实现二叉树的遍历,但递归方法可能因深度过大导致栈溢出,因此掌握非递归版本的遍历算法...

    二叉树的遍历及通过前序中序遍历确定后序层序遍历

    二叉树的遍历主要有三种经典方法:前序遍历、中序遍历和后序遍历。这些遍历方法是理解二叉树特性和操作的关键。 1. **前序遍历**(Preorder Traversal): - 遵循“根-左-右”的顺序访问节点。首先访问根节点,...

    二叉树的中序遍历、哈夫曼编码-C语言编写的

    在这个项目中,我们将深入探讨二叉树的中序遍历以及哈夫曼编码,两者都是使用C语言实现的。 **中序遍历** 是二叉树遍历的三种基本方法之一,其余两种为前序遍历和后序遍历。中序遍历遵循以下规则:首先访问左子树,...

    根据二叉树前序遍历和中序遍历的结果输出后序遍历(java)

    二叉树的遍历是对其进行操作和理解的关键部分,主要包括前序遍历、中序遍历和后序遍历。本话题将详细探讨如何根据给定的二叉树前序遍历和中序遍历的结果,利用Java来输出其后序遍历的序列。 前序遍历的顺序是:根...

    二叉树的中序遍历便利算法(C语言)

    ### 二叉树的中序遍历算法(C语言) #### 一、二叉树简介与定义 在数据结构的学习中,二叉树是一种非常重要的非线性数据结构。二叉树是由零个或多个节点组成的一种层次化的数据存储结构,每个节点最多有两个子节点...

    二叉树的递归遍历,中序遍历,先序遍历,后序遍历

    二叉树的遍历有多种方式,本文将介绍二叉树的递归遍历,中序遍历,先序遍历和后序遍历。 递归遍历是指使用递归函数来遍历二叉树的每个结点。递归遍历的优点是代码简洁易懂,但缺点是可能会导致堆栈溢出。在本文的...

    二叉树进行先序遍历与中序遍历

    在二叉树的遍历中,我们通常有三种主要的方式:前序遍历、中序遍历和后序遍历。这些遍历方法是理解二叉树数据结构的基础,广泛应用于搜索、排序和数据结构的操作。 标题和描述中提到的任务是实现二叉树的构建、前序...

    C++ 二叉树的先序遍历、中序遍历和后序遍历非递归算法

    用C++写的,包括二叉树的构建,二叉树的先序遍历、中序遍历和后序遍历非递归算法。

    用二叉树先序遍历算法创建一组数据构成的二叉树排序,然后用二叉树中序遍历算法实现数据排序输出。

    二叉树中序遍历输出排序 #### 定义与概念 - **中序遍历**:遍历二叉树的一种方式,首先遍历左子树,然后访问根节点,最后遍历右子树。对于二叉查找树而言,中序遍历的结果会是一个有序序列。 #### 算法步骤 1. **...

    中序遍历二叉树的递归算法

    ### 中序遍历二叉树的递归算法 #### 知识点概述 本文将详细介绍如何使用递归方法实现二序遍历二叉树,并解释其背后的原理与应用场景。 #### 二叉树简介 二叉树是一种数据结构,其中每个节点最多有两个子节点:左...

    已知二叉树的前序和中序遍历,打印后序遍历

    这里我们将重点讨论如何在已知二叉树的前序和中序遍历的情况下,通过非递归算法实现后序遍历。 **前序遍历**:根节点 -&gt; 左子树 -&gt; 右子树 **中序遍历**:左子树 -&gt; 根节点 -&gt; 右子树 **后序遍历**:左子树 -&gt; 右子...

Global site tag (gtag.js) - Google Analytics