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); }
  • 相关阅读:
    ABAPNote001
    ABAPNote002
    共享WinCE6.0 下的一个软件升级程序
    EF参数化查询
    VS2010 调用RFC 时注意(.net4.0) 使用nco
    RDLC报表问题
    参数化查询与拼接SQL代码执行测试
    ABAPNOTE 获取释放的定单
    Wince6.0 + xpsp3+VS2005的一些问题
    BackgroundWorker使用备忘
  • 原文地址:https://www.cnblogs.com/osbreak/p/14527227.html
Copyright © 2011-2022 走看看