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
  • 相关阅读:
    使用Visual Studio 2010来部署Windows应用程序
    如何显示一个非激活窗体
    构建ASP.NET网站十大必备工具(2)
    在Azure中创建一个“Hello World”应用程序
    轻松搞定VS2010 和旧版本服务器一起使用的问题
    Sql注入与转义
    小数型 Float(M,D),decimal(M,D)
    MySQL SQL语句
    作业综合练习配置+自定义函数设置
    作业综合练习初始化工作
  • 原文地址:https://www.cnblogs.com/kingshow123/p/queue.html
Copyright © 2011-2022 走看看