⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 习题1-二叉树中序遍历.c

📁 数据结构各章实验源代码; 数据结构实验源代码
💻 C
字号:
#include  <stdio.h>
#include  "datastru.h"
#include  <malloc.h>
#include  "二叉树.c"

void inorder(BTCHINALR *bt)
/*中序遍历二叉树(递归算法)*/
{if(bt != NULL)
	{	inorder(bt->lchild);
		printf("%c  ",bt->data);
		inorder(bt->rchild);	}
}

void  inorder_notrecursive(BTCHINALR  *bt)
/*中序遍历二叉树(非递归算法)*/
{BTCHINALR  *q,  *s[20];
  int  top = 0;
  int  bool = 1;

  q = bt;
  do {while(q != NULL)
          {  top ++;  s[top] = q;   q = q->lchild; }
       if(top == 0)   bool = 0;
       else { q = s[top];
	      top --;
	      printf("%c  ",q->data);
	      q = q->rchild; }
  }while(bool);
 }

main( )
{ BTCHINALR  *bt;
  char ch;
  int i;

 bt = createbt(); i = 1;
 while(i) {
	 printf("\n中序遍历二叉树(递归按y键,非递归按n键):  ");
     fflush(stdin);
     scanf("%c",&ch);
     if(ch == 'y') inorder(bt);  else inorder_notrecursive(bt);
     printf("\n");
	 printf("\n继续操作吗?(继续按1键,结束按0键):  ");
     fflush(stdin);
     scanf("%d",&i);
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -