<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)站導航:
     
    主站蜘蛛池模板: 久久亚洲中文无码咪咪爱| 亚洲精品**中文毛片| 国产精品亚洲专区一区| 最近免费中文字幕4| 亚洲天然素人无码专区| 啦啦啦手机完整免费高清观看| 最新亚洲精品国偷自产在线| 最近中文字幕无吗高清免费视频| 亚洲国产精品综合一区在线| 91香蕉视频免费| 亚洲一区二区观看播放| 国产成人在线观看免费网站| 成年大片免费高清在线看黄| 亚洲一区二区三区乱码A| 日本黄色动图免费在线观看| 亚洲美女人黄网成人女| 黄瓜视频影院在线观看免费| 91在线亚洲综合在线| 国产伦一区二区三区免费| 一级做a爱过程免费视| 久久被窝电影亚洲爽爽爽| 一级做a爰全过程免费视频| 亚洲一级毛片免费在线观看| 色视频色露露永久免费观看| 免费中文字幕视频| 亚洲AV无码久久精品色欲| 免费h片在线观看网址最新| 亚洲丁香婷婷综合久久| 国产成人精品日本亚洲专区| 久久免费观看国产99精品| 亚洲精华液一二三产区| 国内精品久久久久久久亚洲| 亚洲最大免费视频网| 黄网站色成年片大免费高清 | 亚洲免费中文字幕| 亚洲av无码片vr一区二区三区 | 久久www免费人成看国产片| 亚洲黄色在线视频| 免费一级特黄特色大片在线观看| 免费h视频在线观看| 精品亚洲av无码一区二区柚蜜|