?? 習題1-二叉樹中序遍歷.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繼續(xù)操作嗎?(繼續(xù)按1鍵,結(jié)束按0鍵): ");
fflush(stdin);
scanf("%d",&i);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -