杨辉三角形

#include "LinkQueue.hpp"

#include <iostream>

using namespace std;

// 将target复制到oral
template<typename T>
	void evaluate(LinkQueue<T>& oral, LinkQueue<T>& target)
	{
		while(!target.IsEmpty())
		{
			int a = target.DelQueue();
			oral.EnQueue(a);
		}
	}

int main()
{
	int step;
	cout << "希望产生杨辉三角型的阶数 n (n>2):";
	cin >> step;

	LinkQueue<int> oral;
	int a = 1;
	oral.EnQueue(a);
	oral.EnQueue(a); // 二阶

	LinkQueue<int> target;

	for(int i= 0; i<step-2;i++)
	{
		target.EnQueue(a); // 初始化1
		while(!oral.IsEmpty())
		{
			int b = oral.DelQueue();

			if(!oral.IsEmpty())
			{ 
				int c = b+ oral.GetFront();
				target.EnQueue(c);
			}
			
			if(oral.IsEmpty())
			{
				target.EnQueue(b);
			}
		}

		evaluate(oral,target);		
	}

	cout << step << "阶杨辉三角型为:" << endl;	
	oral.Display();
	
	return 0;
}


你可能感兴趣的:(杨辉三角形)