c语言杨辉三角数据结构,C语言数据结构打印杨辉三角

C语言数据结构打印杨辉三角0

程序运行出来,右半边是对的,但是左半边不对,求解答,谢谢

#include

#include

#define TRUE 1

#define FALSE 0

#define N 7

typedef struct Node

{

int data;

struct Node *next;

}LinkQueueNode;

typedef struct

{

LinkQueueNode *front;

LinkQueueNode *rear;

}LinkQueue;

int InitQueue(LinkQueue *Q) //初始化

{

Q->front=(LinkQueueNode *)malloc(sizeof(LinkQueueNode));

if(Q->front!=NULL)

{

Q->rear=Q->front;

Q->front->next=NULL;

return(TRUE);

}

else return(FALSE);

}

int IsEmpty(LinkQueue *Q)

{

if(Q->front==Q->rear)

return(FALSE);

else return(TRUE);

}

int GetHead(LinkQueue *Q,int *x)

{

if(!IsEmpty(Q))

{

*x=Q->front->data;

return(TRUE);

}

else return(FALSE);

}

int EnterQueue(LinkQueue *q,int x) //入队

{

LinkQueueNode *s;

s=(LinkQueueNode *)malloc(sizeof(LinkQueueNode));

if(s!=NULL)

{

s->data=x;

s->next=NULL;

q->rear->next=s;

q->rear=s;

return(TRUE);

}

else return(FALSE);

}

int DeQueue(LinkQueue *q,int *x) //出队

{

LinkQueueNode *p;

if(q->front==q->rear)

return (FALSE);

p=q->front->next;

q->front->next=p->next;

if(q->rear==p)

q->rear=q->front;

*x=p->data;

free(p);

return (TRUE);

}

void YangHuiTriangle() //打印

{

int n,m,x,temp,j;

LinkQueue Q;

InitQueue(&Q); //初始化队列

m=N;

//printf("\n 1");

EnterQueue(&Q,1); //第一行元素入队

for(n=2;n<=N;n++)

{

for(j=m-1;j>=1;j--)

printf(" ");

m--;

EnterQueue(&Q,1); //第n行的第一个元素入队

for(int i=1;i<=n-2;i++)

{

DeQueue(&Q,&temp);

printf("%d",temp);

printf(" ");

GetHead(&Q,&x);

temp=temp+x;

EnterQueue(&Q,temp);

}

DeQueue(&Q,&x);

printf("%d",x);

EnterQueue(&Q,1);

printf("\n");

}

}

void main()

{

YangHuiTriangle();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值