zoukankan      html  css  js  c++  java
  • 数据结构::队列

    队列
    限定只允许在表的一端插入,另一端删除,具有先进先出特点的线性表
    队尾:允许插入的一端
    队头:允计删除的一端
    应用:凡是对数据的处理具有“先进先出”的特点,都可以用队列这种数据结构来操作。
    循环队列
    队尾插入信息并移动指针rear
    队头取走信息并移动指针front
    缓冲区有信息 rear与front不相等,有可能大于或小于 缓冲区无信息 rear
    == front
    /*=========================================================================
      工程名称:    通过链表管理队列 
      功能描述:    通过链表管理队列,,向循环队列中加入消息
      程序分析:    与栈不同的是,队列的指针域应该是向后顺序指的,主要是靠移动队头队尾指针进行操作  
    =========================================================================*/
     
    #include <stdio.h>
    #include <stdlib.h>
     
    typedef  struct Qnode
    {
        int  data;
        struct Qnode *next;
    }Qnode;
     
    Qnode  *front;      //队头指针
    Qnode  *rear;       //队尾指针
     
    int EnQueue( int *e)
    {
        Qnode *p;
        p=(Qnode *)malloc(sizeof(Qnode));
     
        p->data=*e;         //将数据加入到队列中
        p->next=NULL;       //队尾指向NULL
        rear->next=p;       //调整队尾指针位置,为下一次压栈做准备
        rear=p;
        return  1;
    }
     
     
     
    int DeQueue( int *e)
    {
        Qnode *p;
        if(front==rear)
            return 0;           //队空
     
        p=front->next;          //获得出队指针
        *e=p->data;             //将待出队节点的数据取出
        front->next= p->next;   //调整对头指针,为下次出队做准备
     
        if(p == rear)           //若队头指针追上队尾指针,调整队头指针,此时队空
            rear = front;
     
        free(p);                //释放已出队数据
        return 1;
    }
     
    int main()
    {
        int a = 11;
        int c = 12;
        int b = 0;
        rear=front=(Qnode *)malloc(sizeof(Qnode));
        EnQueue(&a);        //插入队列
        EnQueue(&c);        //插入队列
     
        DeQueue(&b);        //弹出队列
        printf("%d
    ",b);
    DeQueue(
    &b); //弹出队列 printf("%d ",b); }
  • 相关阅读:
    第三届NSCTF之easy ssrf
    第三届NSCTF测试题Welcome
    第三届NSCTF测试题Code php 之MD5碰撞和php strcmp函数绕过
    PUT方法提交message
    使用John the Ripper破解sha512加密的shadow文件密码
    第2章 SQL注入攻击:课时1:注入攻击原理及自己编写一个注入点
    配置IIS10支持php语言脚本
    身边的base64解码工具
    什么是JWT
    IDEA 远程调试
  • 原文地址:https://www.cnblogs.com/osbreak/p/14527227.html
Copyright © 2011-2022 走看看