<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;

    //隊列構造器,創建空隊列
    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 閱讀(1064) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲avav天堂av在线网爱情| 国产亚洲美女精品久久久2020| 亚洲AV色香蕉一区二区| 一区二区三区在线免费| 亚洲国产婷婷综合在线精品| 一色屋成人免费精品网站| 91亚洲一区二区在线观看不卡 | 亚洲精品tv久久久久| 最好2018中文免费视频| 亚洲男女内射在线播放| 你是我的城池营垒免费观看完整版| 亚洲一区无码中文字幕| 美女在线视频观看影院免费天天看| 亚洲国产精品无码久久久秋霞2 | 亚洲国产成人久久综合一区77| 免费的黄网站男人的天堂| 国产午夜亚洲精品午夜鲁丝片| 日本道免费精品一区二区| 色播亚洲视频在线观看| 99re热免费精品视频观看| 亚洲AV色无码乱码在线观看| 美腿丝袜亚洲综合| 99在线在线视频免费视频观看| 亚洲一区二区久久| 成人亚洲网站www在线观看 | 免费国产污网站在线观看| 久久亚洲sm情趣捆绑调教| 大陆一级毛片免费视频观看i| 狼色精品人妻在线视频免费| 亚洲国产成人片在线观看| free哆啪啪免费永久| 国产成人人综合亚洲欧美丁香花 | 久久亚洲2019中文字幕| 日韩免费人妻AV无码专区蜜桃| 亚洲人成网网址在线看| 亚洲A∨午夜成人片精品网站| 久久午夜夜伦鲁鲁片无码免费| 亚洲综合av一区二区三区| 4338×亚洲全国最大色成网站| 三年片在线观看免费大全电影 | 一级特黄录像免费播放肥|