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
  • 相关阅读:
    文本框设置只读,后台可获取
    div 在同一行的 CSS处理
    在标签中添加属性
    (转)如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)
    (转)如何使用ModelSim對Megafunction或LPM作仿真? (SOC) (MegaCore) (ModelSim)
    (笔记)TSL235新型光感器件强烈推荐使用
    (转)如何增加SignalTap II能觀察的reg與wire數量? (SOC) (Quartus II) (SignalTap II)
    (转) 如何將10進位轉2進位? (C/C++) (C)
    (转)如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)
    (笔记)关于LM3S片内FLASH编程的一点建议
  • 原文地址:https://www.cnblogs.com/kingshow123/p/queue.html
Copyright © 2011-2022 走看看