1. 程式人生 > >資料結構之用佇列實現楊輝三角

資料結構之用佇列實現楊輝三角

/**************************************************************
  > File Name: PascalTriangle.c
  > Author: chengfeiyan
  > Mail: [email protected] 
  > Created Time: 2018年08月10日 星期五 16時30分59秒
 **************************************************************/
#include <stdio.h>
#include "SequenceQueue.h"
#include <stdlib.h>

void Traverse(Queue q)
{
	int i;
	for(i = q.front; i != q.rear; i++)
	{
		if (q.data[i] != 0)
		{
			printf("%d ", q.data[i]);
		}
	}
	printf("\n");
}

int main()
{	
	int /*ret,*/ num, i, top;
	Queue q1, q2;

	if (InitQueue(&q1) != SUCCESS || InitQueue(&q2) != SUCCESS)
	{
		printf("Init Failure!\n");
		exit(1);
	}

	printf("Plesae input line:\n");
	scanf("%d", &num);

	for (i = 0; i < num; i++)
	{
		if (i == 0)
		{
			EnterQueue(&q1, 0);
			EnterQueue(&q1, 1);
			EnterQueue(&q1, 0);
		}
		else
		{
			while (LengthQueue(q1) != 1)
			{
				top = DeleteQueue(&q1);
				EnterQueue(&q2, top + GetFront(q1));
			}
			while (LengthQueue(q2) != 0)
			{
				EnterQueue(&q1, DeleteQueue(&q2));
			}
			EnterQueue(&q1, 0);
		}
		Traverse(q1);	
	}
	return 0;
}

相關推薦

資料結構佇列實現三角

/************************************************************** > File Name: PascalTriangle.c > Author: chengfeiyan > Mail:

資料結構實驗八——佇列列印三角

#include <stdio.h> #include <stdlib.h> #define M 50 typedef struct SeqQueue { int element[M]; int front; int rear

資料結構佇列的應用】佇列列印三角

數學中的楊輝三角大家都不陌生,那怎樣用程式的方式求n行的楊輝三角呢?方法很多,佇列就是其中的一種。下面給出基於佇列實現的楊輝三角。 # include<stdio.h> # define

資料結構實現迷宮問題(dfs)

給一個n*n的方格,讓你求從左上角到所給一點的任意一條路徑並輸出 該題用到dfs,以下是對dfs的簡要解析  :詳解請參見 傳送門 dfs是一種用於遍歷或搜尋樹或圖的演算法。 沿著樹的深度遍歷樹的節點,儘可能深的搜尋樹的分支。當節點v的所在邊都己被探尋過或者在搜尋時結點不

資料結構——C++實現鄰接表的DFS與BFS

首先我們要知道鄰接表的基本思想: 鄰接表儲存的基本思想:對於圖的每個頂點vi,將所有鄰接於vi的頂點鏈成一個單鏈表,稱為頂點vertex的邊表(對於有向圖則稱為出邊表),所有邊表的頭指標和儲存頂點資訊的一維陣列構成了頂點表。 在這裡我打算將一個無向圖的鄰接表的建立,以及相

資料結構環形佇列實現(1)

注意:判空,判佇列滿, MyQueue.h #ifndef MYQUEUE_H #define MYQUEUE_H /* 環形佇列C++實現 */ class MyQueue{ publ

前端演算法:js實現三角(帕斯卡三角形)程式設計

楊輝三角,是二項式係數在三角形中的一種幾何排列,在中國南宋數學家楊輝1261年所著的《詳解九章演算法》一書中出現。 在歐洲,帕斯卡(1623-1662)在1654年發現這一規律,所以這個表又叫做帕斯卡三角形。 帕斯卡的發現比楊輝要遲393年,比賈憲遲600年。

利用迴圈佇列實現三角的列印

#define MAXSIZE 100 #include <iostream> using namespace std; typedef int SElemType; typedef struct { SElemType *base; int front;

佇列 列印 三角

//用佇列列印楊輝三角//演算法:n=1 or 2 簡單輸出,n>=3-用佇列實現(把楊輝三角按行入隊,再出隊)//利用佇列 FIFO性質 #include<stdio.h>//範型 typedef int ElementType;//節點 typedef struct {ElementTy

佇列解決三角問題

內容 相信大家都知道楊輝三角是什麼,就不過多介紹了,這篇部落格就是介紹一下,用佇列來解決楊輝三角問題,程式語言是C++,程式碼量不多,關鍵的程式碼就20行左右,思路也很簡單。 思路簡介 我們用一個迴圈,兩個佇列來計算楊輝三角,第一個佇

資料結構學習佇列c++實現三角

#ifndef LINKQUEUE_H #define LINKQUEUE_H #include <iostream> #include <assert.h> using namespace std; template <class T>

佇列實現三角形(資料結構)(C語言)

利用佇列的基本功能輸出楊輝三角形: 實現方案: #include "SequenceQueue.h" int main() { int N, num, i; Queue *que1 = NULL, *que2 = NULL, *tmp = NULL; if(Qu

資料結構連結串列實現佇列

#include<stdio.h>#include<malloc.h>#include<stdlib.h>#define OK 1#define ERROR 0typedef struct Node{ int data; struct Node *next;}Node,*L

HFUT資料結構作業感悟與分析-----C++運用佇列解決三角

//程式碼沒有很詳細的解釋,如果不明白,請自己根據程式碼一行一行分析 //分析三到四層,即可明白其中的原理 //再有問題的話,請在下面留言 #include<iostream> using namespace std; //我自己寫的Queue,是使用鏈佇列實

資料結構模版實現大小堆、實現優先順序佇列,以及堆排序

    一、用模版實現大小堆    如果不用模版的話,寫大小堆,就需要分別實現兩次,但是應用模版的話問題就簡單多了,我們只需要實現兩個仿函式,Greater和Less就行了,仿函式就是用類實現一個()的過載就實現了仿函式。這個看下程式碼就能理解了。再設計引數的時候,需要把模版

java中leetcodeArraylist List實現三角

要用java  ArrayLIsts實現下面的形式,題目是在leetcode上看到的,        1     1    1  1   2   1 1   3   3  1 具體看看用程式碼怎麼

資料結構單鏈佇列(鏈式儲存佇列)的實現(C語言)

學習參考: 嚴蔚敏: 《資料結構-C語言版》 基本操作 入隊 出隊 建空佇列 判隊空 獲取隊首元素 獲取佇列長度 清空佇列 程式碼實現 佇列結點定義 typedef stru

資料結構迴圈佇列(面向物件思想c++實現)

佇列是一種資料結構,它具有先進先出的特點,即FIFO(first in first out)。佇列一般有普通佇列和迴圈佇列兩種形式。我們用陣列來實現佇列,使用一般的普通佇列,當我們把隊頭元素out的時候,隊頭後的元素會逐一向前挪動,這樣就大大降低了處理效率。

資料結構與演算法(2)——各種方法實現三角

分別用二維陣列、一維陣列、遞迴等三種方法實現楊輝三角; 楊輝三角:首尾都為1,中間數值等於其肩上兩個數值之和,形如下面: 1

資料結構複習---------佇列列印三角

用佇列實現列印楊輝三角 問題介紹: 如果將二項式(a+b)^i(i=2,3,4……)展開,其係數排列成楊輝三角,如何實現各行係數的前n行打印出來,如下所示: 0 1