二叉树中序遍历非递归算法(c语言实现)要求用到栈的相关知识,包括栈的建立,什么什么的.写出全部的过程源代码.明早要交的作业,哪个给我写好了再加20分

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 13:04:15
二叉树中序遍历非递归算法(c语言实现)要求用到栈的相关知识,包括栈的建立,什么什么的.写出全部的过程源代码.明早要交的作业,哪个给我写好了再加20分二叉树中序遍历非递归算法(c语言实现)要求用到栈的相

二叉树中序遍历非递归算法(c语言实现)要求用到栈的相关知识,包括栈的建立,什么什么的.写出全部的过程源代码.明早要交的作业,哪个给我写好了再加20分
二叉树中序遍历非递归算法(c语言实现)
要求用到栈的相关知识,包括栈的建立,什么什么的.
写出全部的过程源代码.
明早要交的作业,哪个给我写好了再加20分

二叉树中序遍历非递归算法(c语言实现)要求用到栈的相关知识,包括栈的建立,什么什么的.写出全部的过程源代码.明早要交的作业,哪个给我写好了再加20分
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define null 0
struct node
{
char data;
struct node *lchild;
struct node *rchild;
};
//先序,中序 建树
struct node *create(char *pre,char *ord,int n)
{
struct node * head;
int ordsit;
head=null;
if(ndata=*pre;
head->lchild=head->rchild=null;
ordsit=0;
while(ord[ordsit]!=*pre)
{
ordsit++;
}
head->lchild=create(pre+1,ord,ordsit);
head->rchild=create (pre+ordsit+1,ord+ordsit+1,n-ordsit-1);
return head;
}
}
//中序递归遍历
void inorder(struct node *head)
{
if(!head)
return;
else
{
inorder(head->lchild );
printf("%c",head->data );
inorder(head->rchild );
}
}
//中序非递归遍历
void inorder1(struct node *head)
{
struct node *p;
struct node *stack[20];
int top=0;
p=head;
while(p||top!=0)
{
while (p)
{
stack[top++]=p;
p=p->lchild ;
}
p=stack[--top];
printf("%c ",p->data );
p=p->rchild ;
}
}
//主函数
int main()
{
struct node * head;
char pre[30],ord[30];
int n;
gets(pre);
gets(ord);
n=strlen(pre);
head=create(pre,ord,n);
inorder(head);
printf("\n");
inorder1(head);
printf("\n");
}
//测试事例;
/*
-+a*b%cd/ef
a+b*c%d-e/f
*/
几个月前自己编写,原版
vc++ 6.0实验通过
怎么样,老板,好激动
给点面子
给分!给分啊

二叉树中序遍历非递归算法(c语言实现)要求用到栈的相关知识,包括栈的建立,什么什么的.写出全部的过程源代码.明早要交的作业,哪个给我写好了再加20分 数据结构试验(用C语言)建立一棵二叉树,并用递归或者非递归的算法分别用先序.中序和后序遍历、谢谢能附一点实验思路更好 c语言基础知识的二叉树的遍历算法 用非递归算法实现:统计二叉树中度为1的结点个数、度为2的结点个数和度为0的结点个数.是非递归算法,数据结构的(C语言版) 数据结构已知一个二叉树中结点的左右孩子为left和right,r指向二叉树的某一结点.请用C编一个非递归函数postfirst(p),求p所对应子树的第一个后序(后根)遍历结点. 你给我的程序有错误啊,麻烦您看一下,给发个正确的吧,谢啦先序遍历( 用递归和非递归的方法一起都要)任务:要求能够输入树的各个结点,并能够输出遍历的遍历序列;分别建立建立二叉树 求fibonacci数列算法,并比较.(递归+非递归) 二叉数的前序、中序、后续三种方式的递归与非递归的算法. C语言程序题:1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现并通过判断是否定义了宏RECURSION来决定对递归fact或非递归fact函数进行编译,最好调用fact函数计算 递归算法向非递归如何转化? c语言递归算法,有一个递归算法如下,则下列叙述正确的是( ).int maze(int a,int b,int c) {if (a 写一算法:求一树中数值最大的数(用到递归) C语言 C语言用非递归算法求数列.有如下序列:0,1,1,2,3,5,8,13,21,34.,其中每个元素都是前两个元素之和,请设计一个非递归算法生成200以内而的该数列.马上要程序下面说一下思路, C语言用递归算法实现:整数模幂运算 x的r次模p.用循环控制比较简单,但是自己用递归写了个运行时结果不算法思想如下,希望用递归实现:(1) a←x,b←r ,c←1(2)若b=0,则输出c,结束.(3)若b是正的 已知二叉树的先根遍历和中序遍历,求后序遍历的算法?麻烦详细写出由先根和中根还原出原来二叉树的算法! 数据结构(C) 请用类C语言实现括号匹配的检验这个算法 牛顿算法和拉格朗日插值算法的C语言实现求如下两个算法的C语言实现:牛顿算法拉格朗日插值算法 编写一个递归算法,计算二叉树中度为1的结点数目