第三周题解

94. 二叉树的中序遍历

typedef struct tree{    
    char Data;    
    struct tree *Left;    
    struct tree *Right;    
}*BinTree; 

void InOrderTraversal1(BinTree BT)
{
	if(BT){
		InOrderTraversal1(BT->Left);
		printf("%d\n", BT->Data);	
		InOrderTraversal1(BT->Right);
	}
}
//非递归 
void InOrderTraversal2(BinTree BT)
{
	BinTree T = BT;
	BinTree Stack[101];
	int top = 0, book[101] = {0}; 
	while(T || !Stack[top]){
		while(T){
			book[top] = 1;
			Stack[top] = T;
			top ++;
			T = T->Left;
		}
		if(book[top]){
			T = Stack[top];
			book[top] = 0;
			top --;
			printf("%d\n", T->Data);
			T = T->Right;
		}
	}	
}

144. 二叉树的前序遍历

//递归
void PreOrderTraversal1(BinTree BT)
{
	if(BT){
		printf("%d", BT->Data);
		PreOrderTraversal1(BT->Left);
		PreOrderTraversal1(BT->Right);
	}
}

//非递归
void PreOrderTraversal2(BinTree BT)
{
	BinTree T = BT;
	BinTree Stack[101];
	int top = 0, book[101] = {0};
	while(T || book[top]){
		while(T){
			book[top] = 1;
			Stack[top] = T;
			top ++;
			printf("%d\n", T->Data);
			T = T->Left;
		}
		if(book[top]){
			T = Stack[top];
			book[top] = 0;
			top --;	
			T = T->Right;
		}
	}	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值