zoukankan      html  css  js  c++  java
  • C语言 链队列基本操作

    C语言链队列基本操作

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    /*
        C语言链队列基本操作
        2014年7月11日10:11:41
    */
    typedef int qType;
    typedef struct node
    {
        qType data;
        struct node *pNext;
    }Node,*pNode;
    typedef struct queue
    {
        pNode front;
        pNode rear;
    }linkQ,*pLinkQ;
    
    //初始化队列
    void initQueue(linkQ *);
    //入队
    void enQueue(linkQ *,qType);
    //出队
    void deQueue(linkQ *,qType *);
    
    
    int main()
    {
        linkQ q;
        qType data,reval;
        int i;
        initQueue(&q);
        printf("请输入5个整数:");
        for(i=0; i<5; i++)
        {
            scanf("%d",&data);
            enQueue(&q,data);
        }
        printf("
    输出结果为:");
        while(q.front != q.rear)
        {
            deQueue(&q,&reval);
            printf("%d ", reval);
        }
        printf("
    ");
        return 0;
    }
    
    void initQueue(linkQ * q)
    {
        q->front = q->rear = (pNode)malloc(sizeof(Node));
        if(!q->front)
        {
            exit(-1);
        }
        q->front->pNext = NULL;
        return ;
    }
    void enQueue(linkQ * q,qType data)
    {
        pNode pNew;
        pNew = (pNode)malloc(sizeof(Node));
        if(!pNew)
        {
            exit(-1);
        }
        pNew->data = data;
        pNew->pNext = NULL;
        q->rear->pNext = pNew;
        q->rear = pNew;
        return ;
    }
    void deQueue(linkQ * q,qType *val)
    {
        pNode pNew;
        if(q->front == q->rear)
        {
            exit(-1);
        }
        pNew = q->front->pNext;
        *val = pNew->data;
        q->front->pNext = pNew->pNext;
        if(q->rear == pNew)
        {
            q->rear = q->front;
        }
        free(pNew);
        return ;
    }
    View Code

     代码二

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    /*
        C语言链队列基本操作
        2014年7月11日10:11:41
    */
    typedef int qType;
    typedef struct node
    {
        qType data;
        struct node *pNext;
    }Node,*pNode;
    typedef struct queue
    {
        pNode front;
        pNode rear;
    }linkQ,*pLinkQ;
    
    //初始化队列
    void initQueue(pLinkQ);
    //入队
    void enQueue(pLinkQ,qType);
    //出队
    void deQueue(pLinkQ,qType *);
    
    
    int main()
    {
        linkQ q;
        qType data,reval;
        int i;
        initQueue(&q);
        printf("请输入5个整数:");
        for(i=0; i<5; i++)
        {
            scanf("%d",&data);
            enQueue(&q,data);
        }
        printf("
    输出结果为:");
        while(q.front != q.rear)
        {
            deQueue(&q,&reval);
            printf("%d ", reval);
        }
        printf("
    ");
        return 0;
    }
    
    void initQueue(pLinkQ q)
    {
        q->front = q->rear = (pNode)malloc(sizeof(Node));
        if(!q->front)
        {
            exit(-1);
        }
        q->front->pNext = NULL;
        return ;
    }
    void enQueue(pLinkQ q,qType data)
    {
        pNode pNew;
        pNew = (pNode)malloc(sizeof(Node));
        if(!pNew)
        {
            exit(-1);
        }
        pNew->data = data;
        pNew->pNext = NULL;
        q->rear->pNext = pNew;
        q->rear = pNew;
        return ;
    }
    void deQueue(pLinkQ q,qType *val)
    {
        pNode pNew;
        if(q->front == q->rear)
        {
            exit(-1);
        }
        pNew = q->front->pNext;
        *val = pNew->data;
        q->front->pNext = pNew->pNext;
        if(q->rear == pNew)
        {
            q->rear = q->front;
        }
        free(pNew);
        return ;
    }
    View Code
  • 相关阅读:
    java jdk1.8 32/64位 官方绿色版下载附安装教程
    坡度常用的表示方法
    就此道别
    阿里巴巴矢量图标库(iconfont)批量全选的方法
    thinkphp6.0 集成Alipay 手机和电脑端支付的方法
    法定的属于我的第23个年头已经结束,在今天迎来第24年的第一天。
    世界地图展开图,来自 Simon's World Map
    thinkphp6.0 composer 安装 web-token/jwt-framework 常见出错原因分析及解决方法
    thinkphp6 常用方法文档
    Python获取列表中的最后一个或者倒数第几个的方案
  • 原文地址:https://www.cnblogs.com/kingshow123/p/queue.html
Copyright © 2011-2022 走看看