<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-126  評論-247  文章-5  trackbacks-0

            
    隊列 (queue) 是先進先出(FIFO, First In First Out)的線性表。隊列只允許在后端 (稱為rear) 進行插入操作,在前端 (稱為front) 進行刪除操作。

     



    /**
     * <!--
     * File   : queue.h
     * Author : fancy
     * Email  : fancydeepin@yeah.net
     * Date   : 2013-02-03
     * --!>
     
    */
    #include 
    <stdio.h>
    #include 
    <stdlib.h>
    #include 
    <malloc.h>
    #define Element char

    typedef 
    struct Node {
        Element data;
        
    struct Node *next;
    *QNode;

    typedef 
    struct TQueue {
        
    struct Node *front;
        
    struct Node *rear;
    *Queue;

    //隊列構造器,創(chuàng)建空隊列
    void queueConstructor(Queue &queue){
        queue
    ->front = (QNode)malloc(sizeof(Node));  //頭結點
        if(!queue->front){
            printf(
    "\n為隊列結點分配內存空間失敗!\n");
            exit(
    0);
        }
        queue
    ->front->next = NULL;
        queue
    ->rear = queue->front;  //空隊列,rear == front
    }

    //是否為空隊列
    bool isEmpty(Queue queue){
        
    if(queue->front == queue->rear){
            
    return true;
        }
        
    return false;
    }

    //入隊
    void enqueue(Queue &queue, Element e){
        QNode node 
    = (QNode)malloc(sizeof(Node));  //新結點
        if(!node){
            printf(
    "\n為隊列結點分配內存空間失敗!\n");
            exit(
    0);
        }
        node
    ->data = e;
        node
    ->next = NULL;
        queue
    ->rear->next = node;  //新結點排在隊尾
        queue->rear = node;  //隊尾指針指向新插進的結點
    }

    //出隊
    Element dequeue(Queue queue){
        
    if(isEmpty(queue)){
            printf(
    "\n隊列為空,出隊操作失敗!\n");
            
    return ' ';
        }
        QNode node 
    = queue->front->next;  //隊頭結點
        Element e = node->data;
        queue
    ->front->next = node->next;  //隊頭指針指向隊頭結點的下一個結點
        if(queue->rear == node){  //隊列的最后一個結點出隊
            queue->rear = queue->front;  //隊尾結點重新指向頭結點
        }
        free(node);  
    //釋放空間
        return e;
    }
       

     


    /**
     * <!--
     * File   : Queue.cpp
     * Author : fancy
     * Email  : fancydeepin@yeah.net
     * Date   : 2013-02-03
     * --!>
     
    */
    #include 
    "queue.h"

    int main() {

        Queue queue;
        queueConstructor(queue);
        enqueue(queue, 
    'f');
        enqueue(queue, 
    'a');
        enqueue(queue, 
    'n');
        printf(
    "%c", dequeue(queue));
        printf(
    "%c", dequeue(queue));
        printf(
    "%c", dequeue(queue));
        
    //output[result]:fan
        return 0;
        
    }
       


     



      
    posted on 2013-02-03 08:22 fancydeepin 閱讀(1065) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 精品国产污污免费网站入口在线| 久久久久久亚洲精品成人| 亚洲av无码久久忘忧草| 99精品视频在线免费观看| 亚洲午夜精品久久久久久人妖| 三年片免费高清版 | mm1313亚洲精品无码又大又粗| 亚洲大码熟女在线观看| 精品国产免费观看| 亚洲av无码成人精品国产| 在线观看国产情趣免费视频| 久久久亚洲精华液精华液精华液| 国产免费人视频在线观看免费| 色网站在线免费观看| 精品亚洲成α人无码成α在线观看| 丁香六月婷婷精品免费观看| 中文字幕亚洲一区| 伊人久久免费视频| 国产成人精品日本亚洲专一区| 精品免费久久久久久成人影院| 国产精品亚洲综合天堂夜夜| 亚洲色图综合在线| 国产午夜免费高清久久影院| 亚洲国产成人手机在线电影bd| 破了亲妺妺的处免费视频国产| 免费大片av手机看片高清| 国产亚洲精品久久久久秋霞| 91精品全国免费观看含羞草 | 亚洲国产精品无码中文lv| 亚洲第一成人影院| 免费一级不卡毛片| 亚洲综合校园春色| 亚洲国产高清在线一区二区三区| 九九美女网站免费| 亚洲熟妇无码一区二区三区 | 无人在线直播免费观看| 看免费毛片天天看| 亚洲第一成年男人的天堂| 天天摸夜夜摸成人免费视频| 久久毛片免费看一区二区三区| 亚洲国产精品综合一区在线|