首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

數據結構:單鏈表屬存儲結構,隊列屬邏輯結構,可用鏈表實現隊列

     編輯:程式設計疑難解答

層次區別

維度單鏈表隊列
層次**存儲結構**(物理)**邏輯結構**(抽象)
特徵節點含數據域+指針域,動態分配,非連續存儲先進先出(FIFO),僅允許隊尾入、隊頭出
實現方式—可用**數組(循環隊列)**、**鏈表(鏈式隊列)**實現
操作插入/刪除任意位置 O(1) 指針調整Enqueue/Dequeue 固定兩端

關係

**單鏈表是實現隊列的其中一種手段**。
同理:棧(LIFO)也可用數組/鏈表實現。

代碼對比


// 鏈式隊列節點(復用單鏈表節點)
struct QueueNode { int data; QueueNode* next; };
struct LinkQueue { QueueNode *front, *rear; };

// 入隊
void EnQueue(LinkQueue* q, int x) {
    QueueNode* n = new QueueNode{x, nullptr};
    if (q->rear) q->rear->next = n; else q->front = n;
    q->rear = n;
}
// 出隊
int DeQueue(LinkQueue* q) {
    if (!q->front) return -1;
    QueueNode* t = q->front;
    int v = t->data;
    q->front = t->next;
    if (!q->front) q->rear = nullptr;
    delete t;
    return v;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved