首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

js打印二叉树,该如何处理

2013-12-20 
js打印二叉树1.使用java和javascript描述以上数据结构。并且使用javascript语言将其打印出来,打印结果按以

js打印二叉树
js打印二叉树,该如何处理
1.使用java和javascript描述以上数据结构。并且使用javascript语言将其打印出来,打印结果按以下次序:34-862-5++
2.使用javascript对数据结构描述的算数表达式求值 明显是作业题。。。建议大家别提供任何代码
[解决办法]
你这是二叉树吗 孩子
[解决办法]
二叉树这样 多叉树差不多


#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <queue>
#include <stack>
#include <iostream>
using namespace std;
typedef struct BiTNode{
char data;
BiTNode *lchild, *rchild;
}BiTNode,*BiTree;

void CreateBiTree(BiTree &T)//建树,按先序顺序输入节点
{
char ch;
scanf("%c",&ch);
if(ch==' ')
{
T=NULL;
return;
}
else
{
T=(BiTree)malloc(sizeof(BiTNode));
if(!T)
exit(1);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void InOrderTraverse(BiTree T)//非递归中序遍历
{

stack<BiTree> Stack;
if(!T)
{
printf("空树!\n");
return;
}

while(T 
[解决办法]
 !Stack.empty())
{
while(T)
{
Stack.push(T);
T=T->lchild;
}
T=Stack.top();
Stack.pop();
printf("%c",T->data);
T=T->rchild;
}                                                                                                                                   
}



void PreOrderTraverse(BiTree T)//非递归先序遍历
{

stack<BiTree> Stack;
if(!T)
{
printf("空树!\n");
return;
}
while(T 
[解决办法]
 !Stack.empty())
{
while(T)
{
Stack.push(T);
printf("%c",T->data);
T=T->lchild;
}
T=Stack.top();
Stack.pop();
         T=T->rchild;
}                                                                                                                                   
}


void PostOrderTraverse(BiTree T)//非递归后序遍历,用一个标记标记右子树是否访问过
{
int flag[20];
stack<BiTree> Stack;
if(!T)
{
printf("空树!\n");
return;
}
while(T)
{
Stack.push(T);
flag[Stack.size()]=0;
T=T->lchild;
}
while(!Stack.empty())
{
T=Stack.top();
while(T->rchild && flag[Stack.size()]==0)
{
flag[Stack.size()]=1;
T=T->rchild;
while(T)
{
Stack.push(T);
flag[Stack.size()]=0;
    T=T->lchild;
}
}
T=Stack.top();
printf("%c",T->data);
    Stack.pop();
}                                                                                                                                   


}
void main()
{
  
BiTree T;
CreateBiTree(T);
PreOrderTraverse(T);
printf("\n");
         InOrderTraverse(T);
printf("\n");
PostOrderTraverse(T);
printf("\n");
}

热点排行