中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

隊列的鏈式存儲結構

發布時間:2020-06-28 21:46:02 來源:網絡 閱讀:1166 作者:BarnabyRoss 欄目:編程語言

   由于線性存儲結構有順序存儲和鏈式存儲兩種,而隊列是一種特殊的線性結構,所以,隊列自然也會有鏈式存儲結構,這種存儲結構,稱之為“鏈隊列”。只不過,這種結構需要兩個指針,一個指針指向隊列的頭部,一個指針指向隊列的尾部。雖然隊列采用了鏈式存儲這種方式,但是它本質上仍然是隊列,因此,只要是隊列,就要遵循:只允許在隊列的頭部進行刪除操作,只允許在隊里的尾部進行插入操作。那么,先來定義個鏈隊列結構:

typedef int QElemType;

typedef struct QNode{

    QElemType data;
    struct QNode *next;
}QNode, *QueuePtr;

typedef struct{

    QueuePtr front, rear;
}LinkQueue;

   有了隊列這種結構后,就可以進行隊列元素的插入操作了。

Status EnQueue ( LinkQueue *Q, QElemType e ){

    QueuePtr s = ( QueuePtr ) malloc ( sizeof ( struct QNode ) );
    
    if ( !s )
        exit ( OVERFLOW );
        
    s->data = e;
    s->next = NULL;
    Q->rear->next = s;
    
    Q->rear = s;
    
    return OK;

}

   同樣的,元素的刪除操作。

Status DeQueue ( LinkQueue *Q, QElemType *e ){

    QueuePtr p;
    
    if ( Q->front == Q->rear )
        return ERROR;
        
    p = Q->front->next;
    *e = p->data;
    Q->front->next = p->next;
    
    if ( Q->rear == p )
        Q->rear = Q->front;
        
    free ( p );
    
    return OK;

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九龙县| 屯门区| 贺州市| 九江县| 吉林市| 丰宁| 通化县| 海原县| 靖安县| 墨玉县| 金沙县| 翁牛特旗| 康定县| 富源县| 山阴县| 蚌埠市| 田东县| 枝江市| 沂水县| 百色市| 龙川县| 长垣县| 樟树市| 潜山县| 榆社县| 宝兴县| 邓州市| 四会市| 梨树县| 贡山| 商河县| 翁牛特旗| 绿春县| 长治县| 荆门市| 高邑县| 柘荣县| 通渭县| 舒兰市| 龙海市| 师宗县|