<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产人成免费视频| 亚洲狠狠ady亚洲精品大秀| a级毛片高清免费视频| 久久久久亚洲精品美女| 女人张腿给男人桶视频免费版| 草久免费在线观看网站| 亚洲精品亚洲人成在线麻豆| 国产精品无码免费视频二三区| 在线观看人成视频免费无遮挡| 国产亚洲国产bv网站在线| 亚洲国产精品尤物YW在线观看| 777爽死你无码免费看一二区| 亚洲av午夜电影在线观看| 亚洲成A人片在线观看WWW| 成年性羞羞视频免费观看无限| 成人网站免费大全日韩国产| 亚洲中文无码永久免费| 亚洲AV综合色区无码一区| 四虎永久在线精品免费影视| 95老司机免费福利| www一区二区www免费| 色天使亚洲综合在线观看| 久久国产亚洲精品麻豆| 免费乱码中文字幕网站| 18禁止观看免费私人影院| 中国一级毛片视频免费看| 老牛精品亚洲成av人片| 亚洲一级视频在线观看| 国产亚洲精品自在久久| 四虎影库久免费视频| 国产精品久久久久免费a∨| 久久大香香蕉国产免费网站| 日韩毛片一区视频免费| 伊人久久亚洲综合影院首页| 337p欧洲亚洲大胆艺术| 亚洲色欲色欲www在线丝| 一级毛片直播亚洲| 国产美女无遮挡免费视频网站 | 国产亚洲精品a在线观看| 日本特黄特色免费大片| 成人a免费α片在线视频网站|