zoukankan      html  css  js  c++  java
  • 队列——假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意:不设头指针), * 试编写相应的置空队列、判断队列是否为空、入队和出队等算法。

    简单的流程图

    #include<iostream>
    using namespace std;
    
    #define ElemType int
    
    /*
    假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意:不设头指针),
    *     试编写相应的置空队列、判断队列是否为空、入队和出队等算法。
    */
    
    typedef struct QNode{
        ElemType data;
        struct QNode *next;
    }QNode,*QueuePtr;
    
    
    typedef struct{
        QueuePtr rear;
        QNode head;
    }LinkQueue;
    
    string InitQueue(LinkQueue &Q){
        Q.rear = new QNode;                //Q.rear代表一个节点,该节点默认为头结点
        Q.rear->next = Q.rear;             //循环队列,尾指针指向头结点
        return "OK";
    }
    
    string EnQueue(LinkQueue &Q,ElemType e){ //在队尾插入
        QueuePtr S = new QNode; 
        S->data = e;
        S->next=Q.rear->next;                
        Q.rear->next=S;
        Q.rear=S;
        return "OK";   
    }
    
    
    string DeQueue(LinkQueue &Q,ElemType &e){
    
        QNode *q = Q.rear->next->next;
        e = q->data;
        Q.rear->next->next=q->next;
        if(Q.rear->next->next == Q.rear->next) Q.rear=Q.rear->next; //若删除的是最后一个元素时,
        delete q;                                                   //将尾指针归位,将尾指针代表头结点
        return "OK"; 
    }
    
    int IsEmpty(LinkQueue Q){
        if(Q.rear->next == Q.rear) return 1;
        else return 0;
    }
    
    
    int main(){
    
        LinkQueue Q;
        InitQueue(Q);
        EnQueue(Q,2);
        cout << IsEmpty(Q)<<endl;
        ElemType a;
        DeQueue(Q,a);
        cout <<a;
        cout << IsEmpty(Q)<<endl;
        system("pause");
        return 0;
    }

     参阅其他博客,并在其基础上进行修补

    https://blog.csdn.net/JxufeCarol/article/details/83057994

  • 相关阅读:
    JFreeChart生成图片
    itext生成Word
    itext生成PDF
    物理模型name与comment互相转化
    表单序列化为Json(只限input)
    c#多线程同步之EventWaitHandle的应用
    C#多线程之异步编程
    Java环境变量设置
    sharepoint 2013实践
    WPF研究之道——数据驱动UI
  • 原文地址:https://www.cnblogs.com/LuMinghao/p/14010272.html
Copyright © 2011-2022 走看看