按照二叉树的每行个数打印数组

2023-05-13 13:29:46 浏览数 (2)

代码语言:javascript复制
	int num = hp.size;
	int front = 0;
	int back = 1;
	int row = 1;
	while (num)
	{
		for (int j = front; j < back; j  )
		{
			cout << hp.arr[j] << " ";
		}
		cout << endl;
		num -= row;//输出完本行还剩的元素个数
		//如果减去本行输出的个数小于0
		if (num <= 0)
		{
			break;
		}
		row *= 2;//下一行要输出的元素个数
		front = back;//定位下一行的起点
		if (num - row <= 0)//如果当前的元素个数不够输出下一行的,直接定位下一行的back位置
		{
			back = hp.size;
		}
		else// 够则——手动定位结尾位置
		{
			back  = row;
		}
	}

0 人点赞