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
  • 相关阅读:
    【转】Javascript面向对象编程(二):构造函数的继承
    【转】Javascript 面向对象编程(一):封装
    js 碎片整理(变量声明,函数作用域)
    js函数表达式和函数声明的区别
    jquery实现input输入框实时输入触发事件代码(点击历史记录也会触发)
    JS控制,返回上一页之后强行刷新一次
    疯狂JAVA16课之对象与内存控制
    [转] C++的引用传递、指针传递参数在java中的相应处理方法
    Markdown编辑器测试
    15-01-07 C# 面向过程 08
  • 原文地址:https://www.cnblogs.com/kingshow123/p/queue.html
Copyright © 2011-2022 走看看