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

  • 相关阅读:
    按之字形打印二叉树 --剑指offer
    浅谈PHP+Access数据库的连接 注意要点
    Linux下统计代码行数
    获取服务器IP,客户端IP
    CURL访问举例
    廖雪峰博客
    Redis命令
    svn merge和branch 详解
    Linux Screen超简明教程
    MySQL 的Coalesce函数
  • 原文地址:https://www.cnblogs.com/LuMinghao/p/14010272.html
Copyright © 2011-2022 走看看