zoukankan      html  css  js  c++  java
  • 用队列生成杨辉三角

    /*用队列生成杨辉三角*/
    #include <iostream>
    using namespace std;
    typedef struct Node{
        int element;
        Node* pNext;
    }Node,*LinkList;
    typedef struct  
    {
        LinkList head;
        LinkList tail;
    }Queue;
    void InitQueue(Queue& queue)
    {
        queue.head=(LinkList)malloc(sizeof(Node));
        queue.head->pNext=NULL;
        queue.tail=queue.head;
    }
    void EnQueue(Queue& queue,int element)
    {
        LinkList temp=(LinkList)malloc(sizeof(Node));
        temp->element=element;
        temp->pNext=NULL;
        queue.tail->pNext=temp;
        queue.tail=temp;
    }
    void DeQueue(Queue& queue,int &element)
    {
        if (queue.head->pNext==queue.tail)
        {
            element=queue.tail->element;
            free(queue.tail);
            queue.tail=queue.head;
            return;
        }
        LinkList temp=queue.head->pNext;
        element=temp->element;
        queue.head->pNext=temp->pNext;
        free(temp);
    }
    int EmptyQueue(Queue queue)
    {
        if (queue.head==queue.tail)
        {
            return 1;
        }
        return 0;
    }
    void DestroyQueue(Queue& queue)
    {
        free(queue.head);
        queue.head=queue.tail=NULL;
    }
    int GetHead(Queue queue)
    {
        return queue.head->pNext->element;
    }
    void main()
    {
        int N;
        cin>>N;
        Queue queue;
        InitQueue(queue);
        EnQueue(queue,1);
        EnQueue(queue,1);
        int flag=0;
        for (int i=1;i<N;i++ )
        {
            while(true)
            {
                int element;
                DeQueue(queue,element);
                cout<<element<<"  ";
                if (element==1)
                {
                    if (flag==0)
                    {
                        EnQueue(queue,1);
                        EnQueue(queue,element+GetHead(queue));
                        flag++;
                    }else
                    {
                        flag=0;
                        EnQueue(queue,1);
                        break;
                    }
                }else
                    EnQueue(queue,element+GetHead(queue));
            }
            cout<<endl;
        }
        while (!EmptyQueue(queue))
        {
            int element;
            DeQueue(queue,element);
            cout<<element<<"  ";
        }
        cout<<endl;
        DestroyQueue(queue);
    
    }
  • 相关阅读:
    python的基本操作while循环体
    python中类的神奇方法应用案例
    Python中类的神奇方法
    python 中类的初始化方法
    Python中类的创建和self的作用
    投掷骰子的游戏,键值对
    字典常用方法
    剪刀石头布
    math 模块
    PYTHON内置模块
  • 原文地址:https://www.cnblogs.com/GoAhead/p/2654837.html
Copyright © 2011-2022 走看看