- 浏览: 734615 次
- 性别:
- 来自: 嘉兴
文章分类
- 全部博客 (386)
- Struts1.1 (2)
- Database (18)
- Core Java (15)
- Log4j (4)
- SSH (0)
- Dao (1)
- Architecture Design (1)
- References (2)
- Eclipse&MyEclipse (10)
- Hibernate (7)
- Spring (8)
- JavaMail (1)
- Data Structure And Algorithm (48)
- Struts 2 (2)
- SSI (1)
- SSL (2)
- JSTL (1)
- EJB3 (2)
- NET (2)
- XML (2)
- Components (2)
- Ant (3)
- Multi Thread (1)
- Performance Monitoring (1)
- Web Server (17)
- Oracle (1)
- jQuery (8)
- Regular Expression (1)
- Weblogic (1)
- Exception (1)
- Security (2)
- File Manipulation (1)
- JavaScript (12)
- JVM (2)
- HTML&DIV&CSS (4)
- Android (10)
- Beyond GFW (0)
- Business (0)
- SVN (6)
- 虚拟主机 (1)
- Virtual Host (3)
- My mentality (5)
- OS (15)
- ISPMP (3)
- Magento (5)
- Jsoup&HttpClient (7)
- LINUX (9)
- Database Design (0)
- Power Designer (1)
- TaobaoOpenPlatform (2)
- C/C++ (3)
- Maven (11)
- Quartz (1)
- Load Balance (1)
- Zabbix (4)
- Product&Business (1)
- Pay Interface (1)
- Tomcat (2)
- Redis (1)
- 集群 (1)
- Session (1)
- 共享Session (1)
- Jedis (1)
- jenkins (1)
- 持续集成 (1)
- Web前端 (1)
最新评论
-
aqq331325797:
特意注册账号上来说一句。牛逼!
swagger2.2.2 与 spring cloud feign冲突 -
KitGavinx:
跨顶级域名怎么保持sessionid一致?
Tomcat7集群共享Session 基于redis进行统一管理 -
jaychang:
dujianqiao 写道HI ,能否给一个完整的demo 啊 ...
淘宝订单同步方案 - 丢单终结者 -
GGGGeek:
找了一会儿,感觉mybatis应该没有这种操作,直到发现博主的 ...
mybatis collection list string -
dujianqiao:
HI ,能否给一个完整的demo 啊 ?
淘宝订单同步方案 - 丢单终结者
#include<iostream> using namespace std; typedef char ElemType; //二叉树结点的定义 typedef struct BiTreeNode{ ElemType value; BiTreeNode *lChild,*rChild; }BiTreeNode,*BiTree; //栈结点的定义 typedef struct StNode{ BiTree elem; StNode *link; }StNode; //创建二叉树 void CreateBiTree(BiTreeNode *&root) { char data; cout<<"输入结点的值 以#结束\n"; cin>>data; if(data!='#') { BiTreeNode *newNode=(BiTreeNode *)malloc(sizeof(BiTreeNode)); newNode->value=data; root=newNode; CreateBiTree(newNode->lChild); CreateBiTree(newNode->rChild); } else { root=NULL; } } //访问结点 void visit(BiTreeNode *node) { cout<<node->value<<"\n"; } //非递归中序遍历二叉树 void InOrder(BiTree root) { StNode *stackTop=NULL; BiTreeNode *ptr=root; StNode *q=NULL; while(ptr!=NULL||stackTop!=NULL) { //ptr结点的最左下的结点 while(ptr!=NULL) { q=(StNode*)malloc(sizeof(StNode)); if(q==NULL)return; q->elem=ptr; q->link=stackTop; stackTop=q; ptr=ptr->lChild; } q=stackTop; stackTop=q->link; visit(q->elem); ptr=q->elem->rChild; free(q); } } int main() { BiTree root=NULL; CreateBiTree(root); InOrder(root); return 0; }
发表评论
-
【排序算法系列】希尔排序
2015-12-05 16:14 838希尔排序的概述: a[0]...a[n-1 ... -
归并排序
2015-06-20 15:28 896public class MergeSort { pub ... -
插入排序
2015-06-20 15:27 485/** * 插入排序1 容易理解 * * ... -
有序线性链表归并
2013-10-05 11:30 1562#include<stdio.h> #incl ... -
Trie树 应用 Phone List
2012-06-15 11:21 1179Phone List 时间限 ... -
Trie树 单词查找树 键树(JAVA版附分析说明)
2012-06-13 10:27 5177来源于英文“retrieval”. ... -
Trie树 单词查找树 键树
2012-06-12 08:59 1156转自:http://zh.wik ... -
数字金额转中文大写金额
2010-11-26 15:09 1426/** * 用来将数字金额转化成中文大写的金额 ... -
汉诺塔递归算法
2010-11-25 08:17 1353import java.util.Scanner; /* ... -
约瑟夫出圈
2010-11-24 20:45 1099#include<iostream> #incl ... -
SmartHashSet只是为了解释HashSet的原理
2010-07-26 11:11 1359写该类的目的只是为了 ... -
二叉树的创建
2010-06-29 23:15 1134#include<iostream> usi ... -
哈弗曼树建立与哈弗曼编码
2010-06-29 23:12 1247#include<iostream> #de ... -
二叉排序树转双向链表(要求无任何新增节点)
2010-06-29 23:07 2492题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双 ... -
线索二叉树中插入结点
2010-06-29 23:05 1890#include<iostream> usi ... -
二叉排序树的递归与非递归查找
2010-06-29 22:58 2309#include<iostream> usi ... -
二叉树中序线索化及查找某一结点的前驱,后继结点
2010-06-29 22:54 2682#include<iostream> usi ... -
十字链表定义创建查找
2010-06-29 22:44 1322#include<iostream> #defi ... -
稀疏矩阵转置
2010-06-29 22:39 1663#include<iostream> #defi ... -
单链表实现集合并交差操作
2010-06-29 22:34 1996#include<iostream> usi ...
相关推荐
在实际编程中,中序遍历非递归算法不仅适用于二叉树的遍历,还常用于解决二叉树相关的更复杂问题,如平衡因子的计算、二叉树的镜像翻转等。此外,对于算法的优化,可以考虑动态调整栈的大小,以适应不同规模的二叉树...
用C++写的二叉树先序遍历、中序遍历和后序遍历非递归算法
用C++写的,包括二叉树的构建,二叉树的先序遍历、中序遍历和后序遍历非递归算法。
#### 中序遍历非递归算法 中序遍历的顺序是“左-根-右”,即先访问左子树,再访问根节点,最后访问右子树。非递归实现同样采用栈辅助: ```c void InOrderUnrec(Bitree *t) { Stack s; StackInit(s); Bitree *p...
### C语言实现二叉树的中序遍历(非递归) #### 背景介绍 在计算机科学中,二叉树是一种常见的数据结构,在算法设计与分析领域扮演着极其重要的角色。对于二叉树的操作主要包括查找、插入、删除以及各种形式的遍历...
下面是中序遍历非递归算法的实现代码: ```c void InOrderUnrec(Bitree t){ SqStack s; StackInit(s); p=t; while (p!=null || !StackEmpty(s)){ while (p!=null){ push(s,p); p=p->lchild; } if (!...
二叉树的非递归中序遍历 C 代码 ...本文总结了一个非递归中序遍历二叉树的C代码,包括二叉树的定义、栈的实现和非递归中序遍历算法。这些知识点对于计算机科学和软件工程的学生来说是非常重要的。
本节我们将深入探讨非递归实现的中序遍历算法。 首先,理解中序遍历的基本概念是关键。对于一个二叉树,中序遍历的结果可以得到一个按升序排列的节点序列(假设左子树小于根节点,根节点小于右子树)。递归版本的...
//二叉树的二叉链表存储表示 typedef struct BiTNode { TElemType data; BiTNode *lchild, *rchild; //左右孩子指针 } BiTNode, *BiTree; typedef struct { BiTree *base; BiTree *top; int stacksize; //当前...
根据提供的标题、描述以及部分代码内容,我们可以总结出关于二叉树非递归遍历算法的相关知识点。 ### 一、二叉树非递归遍历算法概述 在数据结构的学习中,二叉树是非常重要的一个概念,而遍历是访问二叉树节点的一...
在本话题中,我们将重点讨论链式二叉树的中序遍历,包括递归和非递归的方法,以及如何创建和销毁这种数据结构。 一、链式二叉树的中序创建 中序创建链式二叉树通常涉及自底向上的构建过程。首先,我们需要创建一个...
(1)输入字符序列,建立二叉链表 (2)中序遍历二叉树:递归 (3)中序遍历二叉树:非递归 (3)二叉树高度
利用栈的基本操作实现二叉树的中序遍历非递归算法。
在计算机科学领域,数据结构是组织和管理...总结来说,二叉树的中序遍历是数据结构与算法的重要部分,递归实现则展示了编程中的优雅与效率。通过理解和掌握这个概念,开发者可以更好地设计和优化算法,解决复杂问题。
用递归先序算法建立二叉树。要求通过键盘输入二叉树的先序遍历顺序从而建立一棵二叉树。利用栈实现一棵二叉树的中序非递归遍历。要求显示遍历次序。
### 中序遍历非递归算法 中序遍历的顺序是:左子树→根节点→右子树。同样地,我们可以借助栈来实现非递归版本。从根节点开始,一直向左移动并将经过的节点压入栈中,直到遇到左子树的末端。此时,从栈中弹出最顶部...
中序遍历有三种常见的实现方式:递归、栈辅助的非递归和 Morris 遍历。这里我们主要讨论前两种方法,因为Morris遍历涉及更复杂的数据链接操作。 1. **递归实现**: 递归是最直观的实现方式。基本思路是从根节点...
本文将深入探讨二叉树的前序、中序、后序遍历的递归和非递归算法。 1. **前序遍历**: - **递归算法**:首先访问根节点,然后递归地对左子树进行前序遍历,最后对右子树进行前序遍历。伪代码如下: ``` function...
代码中定义了一个函数 `void inorder(btree ptr)` 实现了中序遍历的递归算法。其核心步骤为: 1. 如果当前节点不为空,则继续递归地对左子树进行中序遍历。 2. 访问当前节点(即输出节点的值)。 3. 继续递归地对右...
**中序遍历非递归算法** 中序遍历的顺序是先遍历左子树,然后访问根节点,最后遍历右子树。在非递归算法中,主要的不同在于访问节点的时机。在中序遍历中,只有当节点没有左子节点或者栈为空时才访问当前节点。以下...