用队列编写一个打印 杨辉三角形前n行的c函数。

haokk 2001-08-18 08:21:26
用队列编写一个杨辉三角形前n行的c函数。

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

队列可用链表或者是数组的数据结构都可以。当然不用队列也可以,只要达到同样的目的。欢迎各种不同的答案/


...全文
1051 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
stupid007 2001-08-22
  • 打赏
  • 举报
回复
up
one_add_one 2001-08-21
  • 打赏
  • 举报
回复
都写了两个了,该给分了:)
one_add_one 2001-08-21
  • 打赏
  • 举报
回复
递推方式:
/*TC2.0调试通过*/
#include <stdio.h>
#define N 10
main()
{
long a[N+2],b[N+2],*p=a,*q=b,*t,i,j;
for (i=0;i<=N+1;i++) a[i]=b[i]=0;
printf ("%d\n",a[1]=1);
for (i=2;i<=N+1;i++,printf("\n"),t=p,p=q,q=t)
for (j=1;j<=i;j++)
printf ("%ld ",q[j]=p[j-1]+p[j]);
}
one_add_one 2001-08-20
  • 打赏
  • 举报
回复
这个该简单了:
/*TC2.0调试通过*/
#include <stdio.h>
#define N 10
long c(int m,int n){
int i;
long t=1;
for (i=m-n+1;i<=m;i++) t*=i;
for (i=1;i<=n;i++) t/=i;
return t;
}
main(){
int i,j;
for (i=0;i<=N;i++,printf("\n"))
for (j=0;j<=i;j++)
printf("%ld ",c(i,j));
}
xiaoshitou 2001-08-20
  • 打赏
  • 举报
回复
to张晨:
我写过用递归求出阶乘,然后用函数和杨辉三角的数学公式求出,之后通过调整输出的空格来显示这种杨辉三角的样子
我觉得实在是很烦,很笨,没好意思贴出来,
很想看看用链表怎样做,你先说说思路,我的是最笨的一种方法了
frman 2001-08-19
  • 打赏
  • 举报
回复
呵呵。。这个递推的东西很像我们这一个用生日算缘分的东西:))哈哈~~~:))
haokk 2001-08-19
  • 打赏
  • 举报
回复
谁写点c的来看看啊~~别只顾着说啊
frman 2001-08-18
  • 打赏
  • 举报
回复
呵呵。。。各位大哥不要笑我啊,扬辉三角是什么啊??是不是那个什么多项式的什么系数什么的??嘿嘿。。。不要笑我啊:)
one_add_one 2001-08-18
  • 打赏
  • 举报
回复
方法太多了!

可以用数组保存相邻的两个状态,然后一边递推一边打印。

也可以直接用公式把结果输出来就行了,呵呵!
one_add_one 2001-08-18
  • 打赏
  • 举报
回复
简单!
xiaoshitou 2001-08-18
  • 打赏
  • 举报
回复
以前使用循环打的,不过这样效率不高
也想知道链表怎么打?
实验一 线性表的有关操作………………………………………………………………………4 实验二 栈和队列的有关操作………………………………………………………………5 实验三 二叉树的基本操作…………………………………………………………………6 实验四 图的基本运算…………………………………………………………………………7 实验五 查找的有关操作…………………………………………………………………………8 实验六 排序的有关操作…………………………………………………………………………9 实验一 线性表的有关操作 一、实验学时:2学时 二、背景知识:单链表的插入、删除及应用。 三、目的要求: 1、掌握单向链表的存储特点及其实现。 2、理解和掌握单链表的类型定义方法和结点生成方法。 3、掌握单向链表的插入、删除算法及其应用算法的程序实现。 四、实验内容: 1、随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。 2、遍历单向链表(显示)。 3、把单向链表中元素逆置(不允许申请新的结点空间)。 4、在单向链表中删除所有的偶数元素(值为偶数)结点。 5、编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。 6、利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。 7、利用算法5建立两个非递减有序单向链表,然后合并成一个非递减链表。 8、编写一个函数,调试上述算法。 实验二 栈和队列的有关操作 一、实验学时:2学时 二、背景知识:入栈、出栈,入队、出队。 三、目的要求: 1、掌握栈、队列的思想及其存储实现。 2、掌握栈、队列的常见算法的程序实现。 四、实验内容: 1、用顺序存储定义栈结构。写出这种存储方式下的算法实现,包括:初始化栈、判栈为空、出栈、入栈、求栈顶元素等运算,自己填写主函数。 2、利用顺序栈的基本操作,设计算法,实现将任意一个十进制整数转化为R进制整数 3、用顺序存储来定义循环队列结构。编程实现,初始化队列、判队列为空、出队列、入队列、求队列头部元素等运算,自己填写主函数。 4、利用队列打印杨辉三角形杨辉三角形是形如: 1 1   1 1   2   1 1   3   3   1 1   4   6   4   1 的三角形,其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,它的特点是 左右两边全是1,从第二起,中间的每一个数是上一里相邻两个数之和。输入要打印的层数n,打印出相应的杨辉三角形

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧