二叉树
文章平均质量分 77
qq_2773878606
学生
展开
-
二叉树的递归和非递归遍历
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。 一.前序遍历 前序转载 2015-08-28 16:05:16 · 359 阅读 · 0 评论 -
二叉树(遍历、建立、深度)
1、二叉树的深度遍历 二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树的所有结点,使得每个结点被访问一次且仅被访问一次。 对于二叉树的深度遍历,有前序遍历二叉树、中序遍历二叉树、后序遍历二叉树三种形式,下面分别进行学习和介绍。 1.1 二叉树的前序遍历 1)前序递归遍历 规则是若转载 2015-08-28 16:20:10 · 626 阅读 · 0 评论 -
在二叉树中找值为x的结点(假设所有结点的值都不一样)
#include #include #define N 7 using namespace std; typedef struct node { struct node *leftChild; struct node *rightChild; int data; }BiTreeNode, *BiTree; // 生成一个结点 BiTreeNode *createNode(int i) {原创 2015-08-30 09:59:56 · 809 阅读 · 0 评论 -
求二叉树中叶子结点的个数
#include #define N 63 using namespace std; char str[] = "ab#d##c#e##"; int i = -1; typedef struct node { struct node *leftChild; struct node *rightChild; char data; }BiTreeNode, *BiTree; //生成一个转载 2015-08-30 10:04:36 · 1048 阅读 · 0 评论 -
利用非递归方法实现二叉树的先序遍历
#include #include #define N 7 using namespace std; typedef struct node { struct node *leftChild; struct node *rightChild; int data; }BiTreeNode, *BiTree; // 生成一个结点 BiTreeNode *createNode(int i) {转载 2015-08-30 09:55:21 · 505 阅读 · 0 评论 -
求二叉树的高度
这个程序在二叉树层次遍历的递归实现中曾用到过,程序如下: [cpp] view plaincopy #include #include #define N 7 using namespace std; typedef struct node { struct node *leftChild;转载 2015-08-30 10:01:45 · 439 阅读 · 0 评论 -
利用非递归方法实现二叉树的中序遍历
#include #include #define N 7 using namespace std; typedef struct node { struct node *leftChild; struct node *rightChild; int data; }BiTreeNode, *BiTree; // 生成一个结点 BiTreeNode *createNode(int i) {转载 2015-08-30 09:57:29 · 435 阅读 · 0 评论 -
用递归方法对二叉树进行先序、中序和后序遍历
二叉树为: 1 2 3 4 5 6 7 程序如下: [cpp] view plaincopy #include #de转载 2015-08-30 09:52:10 · 670 阅读 · 0 评论 -
二叉树的建立
#include #define N 7 using namespace std; typedef struct node { struct node* leftchild; struct node* rightchild; int data; }Node,*Bitree; //建立一个节点 Node * creatnode(int i) { Node* p = new Node; p原创 2015-08-29 22:12:27 · 552 阅读 · 0 评论 -
二叉树的建立
#include using namespace std; typedef struct node { char data; struct node * leftchild; struct node* rightchild; }Node,*Bitree; void creatbitree(Bitree &T) { char c; cin >> c; if ('#' == c) T原创 2015-08-29 22:33:21 · 461 阅读 · 0 评论