c语言以顺序结构存储的二叉树的非递归遍历,C语言二叉树的非递归遍历实例分析...

本文以实例形式讲述了C语言实现二叉树的非递归遍历方法。是数据结构与算法设计中常用的技巧。分享给大家供大家参考。具体方法如下:

先序遍历:

void preOrder(Node *p) //非递归

{

if(!p) return;

stack s;

Node *t;

s.push(p);

while(!s.empty())

{

t=s.top();

printf("%d\n",t->data);

s.pop();

if(t->right) s.push(t->right);

if(t->left) s.push(t->left);

}

}

中序遍历:

void inOrder(Node *p)

{

if(!p)

return;

stack< pair > s;

Node *t;

int unUsed;

s.push(make_pair(p,1));

while(!s.empty())

{

t=s.top().first;

unUsed = s.top().second;

s.pop();

if(unUsed)

{

if(t->right)

s.push( make_pair(t->right,1) );

s.push( make_pair(t,0) );

if(t->left)

s.push( make_pair(t->left,1));

}

else printf("%d\n",t->data);

}

}

后序遍历:

void postOrder(Node *p)

{

if(!p) return;

stack > s;

Node *t;

int unUsed;

s.push(make_pair(p,1));

while(!s.empty())

{

t=s.top().first;

unUsed=s.top().second;

s.pop();

if(unUsed)

{

s.push(make_pair(t,0);

if(t->right)

s.push(make_pair(t->right,1));

if(t->left)

s.push(make_pair(t->left,1));

}

else printf("%d\n",t->data);

}

}

希望本文所述对大家C程序算法设计的学习有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言标识符的文法表示,第三章文法和语法[lly]3.ppt

第三章文法和语法[lly]3第3章文法和语言;1、语言;研究程序设计语言及研究的三个方面&#xff1a; 每个程序构成的规律(语法 Syntax)每个程序的含义(语义 Semantics)每个程序和使用者的关系(语用 Pragmatics)语言三个方面定义&#xff1a;语法 -- 表示构成语言句子的各个记号之间…

c语言编程函数补充上机题,2011年计算机二级C语言上机操作题及答案(10)

/********found********/void fun(char *s, *t1, *t2, *w){int i;char *p, *r, *a;strcpy(w, s);while (*w){p w;r t1;/********found********/while (r)if (*r *p){r;p;}else{break;}if (*r ’\0’){a w;r t2;while (*r){*a *r;a;r;}w strlen(t2);}else{w;}}}main(…

苏州大学实验报告模板C语言,苏州大学实验报告-实验flash在线编程实验

1、实验Flash在线编程实验一实验目的1进一步熟悉MT-IDE嵌入式开发系统环境、汇编、C语言、调试方式。2进一步学习SCI通信的内容。3掌握Flash存储器在线编程的基本概念。4熟悉GP32芯片Flash存储器的在线编程擦除和写入的步骤。5理解课本中的程序代码。二预习要求1仔细阅读本实验…

c55x汇编语言,TMS320C55x汇编语言编程A.ppt

TMS320C55x汇编语言编程A例4-17,无效定义的表达式。 .global Y ; 定义Y为全局外部符号 badsym1.set Y ; Y在当前文件中未定义 badsym2.set 50h Y ; 无效的表达式 badsym3.set 50h Z ; 无效的表达式&#xff0c;Z还未定义 Z .set 60h; 定义Z&#xff0c;但应在表达式使用之前 …

c语言课程笔记格式,C语言课程学习笔记.docx

C语言课程学习笔记C语言基础语言排行榜C——java——objective-C进制&#xff1a;进制&#xff1a;进位机制。用普通的话讲&#xff0c;应该为人为的定义一种度量来标识一样东西。计算机常用的进制有&#xff1a;十进制、二进制、八进制和十六进制。十进制&#xff1a;0-9(十个…

c语言 手机图形库,c语言的图形库 - osc_opiar5rp的个人空间 - OSCHINA - 中文开源技术交流社区...

图形库链接http://www.easyx.cn/ 使用图形库头文件easyx.h或graphics.h同样在里面下载图形库帮助文档进行查询vs vc都可使用图形库图形库窗口&#xff1a;initgraph打开窗口closegraph关闭窗口颜色RGB值 RGB(,,)&#xff1a;red green blue 下表值都可以在函数中直接使用填充颜…

android 自动挂断,[转]android 来电自动接听和自动挂断

注意&#xff1a;android2.3版本不支持下面的自动接听方法。(会抛异常&#xff1a;java.lang.SecurityException:Neither user xxxxx nor current process hasandroid.permission.MODIFY_PHONE_STATE.)第一步&#xff1a;准备应用环境需要的系统包和aidl文件。(1)在应用中创建包…

Android实现mp3分析,Android编程实现播放MP3功能示例

本文实例讲述了Android编程实现播放MP3功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;在android中播放mp3非常简单&#xff0c;也是项目中经常使用的&#xff0c;比如说要做项目的背景音乐&#xff0c;应用中某些功能的提示音等的。应用非常广泛,下面提供一个简单…

android 投票功能,腾讯新闻Android客户端更新 加入投票功能

腾讯近日更新了其应用《腾讯新闻》安卓版&#xff0c;加入了新闻专题&#xff0c;投票两大新功能&#xff0c;同事还优化了用户界面&#xff0c;大家在浏览各类新闻方面又有了新的选择。新版特点&#xff1a;1、新闻专题&#xff1a;热门新闻专题呈现&#xff0c;聚合浏览&…

android8.1自定义通知栏,Android 8.1隐藏状态栏图标的实例代码

近期客户需求&#xff0c;状态栏只显示时间和电池图标&#xff0c;如图状态栏图标的布局文件在frameworks\base\packages\SystemUI\res\layout\status_bar.xml,主要包括通知&#xff0c;定位&#xff0c;蓝牙&#xff0c;信号&#xff0c;时间&#xff0c;电池等图标&#xff0…

广州城市地图为android,广州无障碍地图

广州无障碍地图是一款非常不错的手机导航app&#xff0c;专门为老人与残障人士打造的哦。该app将准确的为残障用户规划出一条没有任何障碍的出行路线&#xff0c;并且该软件拥有语音、文字等不同的播报方式。特色说明1、智能化的手机导航的系统&#xff0c;语音识别2、最为准确…

如何将系统退回上个版本Android,vivo NEX A降级教程,如何回退到旧版本系统的方法...

也来分享一下这个vivo NEX A手机的相关降级操作了&#xff0c;因为看到有的小伙伴对对于新升级的系统不是特别的满意&#xff0c;这个时候就会考虑进行系统的降级回退操作 &#xff0c;一般直接刷官方的全量包是降不了&#xff0c;需要一个安卓10.0的中转降级包才行的&#xff…

支持3d android 模拟器,真正免root的3D神器详细使用教程

3D神器的功能众所周知&#xff0c;Android手机的GPU(图像显示芯片)是内置在CPU中的&#xff0c;而由于各个手机所采用的CPU不同&#xff0c;其GPU也不一样&#xff0c;不同的GPU&#xff0c;其内置的渲染模式也不一样。这就导致了不同手机的CPU平台需要使用对应的游戏数据包才能…

jays+android耳机,android – 响应多按钮有线耳机

我正在驾驶一对JAYS四耳机(有线遥控器/麦克风上有3个按钮)插入Galaxy Nexus(ICS 4.0.2)进行实验.我的问题是,只有中间的按钮被我写的测试应用程序’识别’,即按键时触发了Intent.ACTION_MEDIA_BUTTON和/或Activity.onKeyDown回调与KeyCode 79.按另外两个按钮不会触发任何以前的…

华为副总鸿蒙,“哄蒙”败北!华为副总裁落实最新消息,鸿蒙3月31日正式亮剑...

原标题&#xff1a;“哄蒙”败北&#xff01;华为副总裁落实最新消息&#xff0c;鸿蒙3月31日正式亮剑不得不说&#xff0c;最近的华为生态建设又取得了重大的突破。在2020年不到一年的时间里&#xff0c;华为HMS生态注册开发者的数量就已经快要突破200万了&#xff0c;如此庞大…

android sonar 简书,SonarQube对ios、android代码检测

一、sonar安装利用sonar检测代码需要安装下面几个软件SonarQube、Sonar-Scanner、OClint、sonar plugin for objective-c、sonar-I10n-zh(安装步骤参考http://www.cnblogs.com/ishawn/p/3959521.html )二、ios检测脚本cp -rf /Users/conf/ios/sonar-project.properties ${WORKS…

android afw模式,[HUAWEI-TITANC328]手机加密功能开启后,工作区中添加超级备份手机不断重启的分析报告...

工作区中添加超级备份手机不断重启的分析报告【华为反馈】 【TIT-AL00C328B120_AFW_必现】创建工作空间后升级系统,升级失败&#xff0c;手机循环重启。通过分析log发现&#xff0c;实际上这个问题与OTA无关&#xff0c;而与工作区应用发出的notification有关。经过沟通和自测&…

html淡化效果,jQuery实现基本淡入淡出效果的方法详解

本文实例讲述了jQuery实现基本淡入淡出效果的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;jQuery fadeIn()方法&#xff1a;用于淡入已隐藏的元素jQuery fadeOut()方法&#xff1a;用于淡出可见的元素$(document).ready(function(){$("button").clic…

Html跨页面调用函数,一个cshtml如何在另一个cshtml中调用一个函数?

在webmatrix中&#xff0c;我在App_Data中创建了一个带有许多公共静态函数的DAL.cshtml。我想从其他文件夹中的另一个.cshtml页面调用它们。我现在得到了编译器错误消息&#xff1a;CS0103&#xff1a;名称DAL在当前上下文中不存在(请注意&#xff0c;我是一名初学者&#xff0…

html 类型转换,JavaScript怎么进行类型转换?

JavaScript怎么进行类型转换&#xff1f;下面本篇文章就来介绍一下使用javascript进行类型转换的方法&#xff0c;希望对大家有所帮助。JavaScript 变量可以转换为新变量或其他数据类型&#xff0c;分为两种情况&#xff1a;● 隐性转换&#xff1a;通过 JavaScript 自身自动转…