?? 二叉樹的遍歷.cpp
字號:
// eXp_3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include <malloc.h>
#include <stdlib.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
typedef int status;
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
status CreateBiTree(BiTree &T) //創建結點
{
char ch;
scanf("%c",&ch);
if(ch==' ')
T=NULL;
else
{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}
status PreOrderTraverse(BiTree T)//先序
{
if(T)
{
printf("%c",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
return OK;
}
return ERROR;
}
status InOrderTraverse(BiTree T){//中序
if(T)
{
InOrderTraverse(T->lchild);
printf("%c",T->data);
InOrderTraverse(T->rchild);
}
return OK;
}
status PosOrderTraverse(BiTree T)
{//后序
if(T)
{
PosOrderTraverse(T->lchild);
PosOrderTraverse(T->rchild);
printf("%c",T->data);
}
return OK;
}
int main(int argc, char* argv[])
{
BiTree T;
printf("先序建立二叉樹,請依次輸入結點的值,空格表示結點為空\n");
if(CreateBiTree(T)){
printf("先序遍歷序列為:");
PreOrderTraverse(T);
printf("\n中序遍歷序列為:");
InOrderTraverse(T);
printf("\n后序遍歷序列為:");
PosOrderTraverse(T);
}
printf("\n");
getchar();
getchar();
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -