
队列实现杨辉三角,只要思想
考虑不全面int EnQueue(LinkQueue *Q,int e)函数里没有考虑Q->rear== NULL的情况实际上你初始化后Q->rear就等于NULL,之后Q->rear->next=p访问了非法的,导致异常退出
如何用队列的方法求杨辉三角
#includeclass QNode \\\/\\\/链队结点的类{ public: int data; QNode *next; QNode(int item=0) { data= item; next=NULL; }}; \\\/\\\/ QNodeclass LinkQueue { QNode *front, *rear;public: LinkQueue(){rear =front=new QNode();} void Enter (int item ); \\\/\\\/入队 int Leave(); \\\/\\\/出队 int Front(); \\\/\\\/读队头元素 void Clear(); bool IsEmpty(); }; \\\/\\\/ LinkQueue void LinkQueue ::Enter( int item ) \\\/\\\/入队操作{ rear->next = new QNode();\\\/\\\/将新元素item插入到队列的队尾 rear->data=item; rear=rear->next;}\\\/\\\/Enterint LinkQueue ::Leave( ) \\\/\\\/出队操作, 删去队头结点,并返回队头元素的值{ if (IsEmpty ()==1 ) \\\/\\\/判队不空 { QNode *p; p = front->next; int retvalue = p->data; \\\/\\\/保存队头的值 front->next = p->next; delete p; if(front->next==NULL) \\\/\\\/删除队列中唯一结点后,重新设置rear rear=front; return retvalue; } else { cout<< 队列空!<next->data; else { cout<<队列空,无队头元素
<next; while(p) { front->next=p->next; delete p; p=front->next; } rear=front; }bool LinkQueue ::IsEmpty(){ if(front->next==NULL)return false;else return true;}void yang(int n){ int i,j,s,t,u; LinkQueue x; x.Enter(1); x.Enter(1); for(i=1;i<=n;i++) { cout<=10&&s<100) {cout<=100) {cout<>n;yang(n);}