二叉树中序遍历非递归算法(c语言实现)要求用到栈的相关知识,包括栈的建立,什么什么的.写出全部的过程源代码.明早要交的作业,哪个给我写好了再加20分
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 11:54:30
![二叉树中序遍历非递归算法(c语言实现)要求用到栈的相关知识,包括栈的建立,什么什么的.写出全部的过程源代码.明早要交的作业,哪个给我写好了再加20分](/uploads/image/z/5138672-32-2.jpg?t=%E4%BA%8C%E5%8F%89%E6%A0%91%E4%B8%AD%E5%BA%8F%E9%81%8D%E5%8E%86%E9%9D%9E%E9%80%92%E5%BD%92%E7%AE%97%E6%B3%95%28c%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0%EF%BC%89%E8%A6%81%E6%B1%82%E7%94%A8%E5%88%B0%E6%A0%88%E7%9A%84%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%2C%E5%8C%85%E6%8B%AC%E6%A0%88%E7%9A%84%E5%BB%BA%E7%AB%8B%2C%E4%BB%80%E4%B9%88%E4%BB%80%E4%B9%88%E7%9A%84.%E5%86%99%E5%87%BA%E5%85%A8%E9%83%A8%E7%9A%84%E8%BF%87%E7%A8%8B%E6%BA%90%E4%BB%A3%E7%A0%81.%E6%98%8E%E6%97%A9%E8%A6%81%E4%BA%A4%E7%9A%84%E4%BD%9C%E4%B8%9A%2C%E5%93%AA%E4%B8%AA%E7%BB%99%E6%88%91%E5%86%99%E5%A5%BD%E4%BA%86%E5%86%8D%E5%8A%A020%E5%88%86)
二叉树中序遍历非递归算法(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实验通过
怎么样,老板,好激动
给点面子
给分!给分啊