0
点赞
收藏
分享

微信扫一扫

c++ string类详解

小时候是个乖乖 2024-06-06 阅读 45

目录

1 什么是层序遍历

比方说这颗二叉树:
在这里插入图片描述

前序遍历:

请添加图片描述

层序遍历:
请添加图片描述

2 二叉树层序遍历的基本思路

请添加图片描述

3 二叉树层序遍历的实现

//层序遍历
void TreeLevelOrder(BTNode* proot)
{
	QU qu;   // 创建队列
	QInit(&qu);   // 队列初始化

	if (proot == NULL)  // 判空
	{
		return;
	}
	else
	{
		QPush(&qu, proot);  // 二叉树不是空就先把第一个值入队
	}

	while (!QEmpty(&qu))  //  只要队列不是空就一直循环,直到队列为空
	{
		QDataType tmp = QFront(&qu);  //  取队头
		QPop(&qu);   //  队头元素出队
		if (tmp->leftnode != NULL)  //  取队头的子节点入队(除非子节点为空)
		{
			QPush(&qu, tmp->leftnode);
		}
		if (tmp->rightnode != NULL)
		{
			QPush(&qu, tmp->rightnode);
		}
		printf("%d ", tmp->val);  //  打印出队的节点的值(视情况加或不加)
	}

	QDestroy(&qu);  //  别忘了销毁堆列
}

举报

相关推荐

0 条评论