大二佇列的出隊和入隊分析(鏈式結構)C語言

2021-07-06 01:39:31 字數 792 閱讀 4078

大學的課程使用的是c語言

佇列是一種特殊的

線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。

qnode *p;

p=(qnode *)malloc(sizeof(qnode));

p->data=e;

p->next=null;

if (q->rear==null)      //若鏈隊為空,則新節點是隊首節點又是隊尾節點

q->front=q->rear=p;

else

}上面的函式完成元素e的如佇列操作,在實現的時候首先是要if語句判斷當前所操作的佇列是否為空。為空,則只需將佇列的頭(q->front)指向新建的節點p;非空,則將隊尾(q->real->next)指向新建的節點p,再修改隊尾指標

bool queuedelete(lqueue *&q,elemtype &e)   //出隊

上面的函式完成的是出佇列操作,在實現的時候先判斷佇列是否為空。為空;丟擲為空提示;非空;先將隊頭的元素(q->front->data)賦值給待定的變數e,lqnone型的指標型變數*p指向佇列的隊頭(q->front),隊頭節點(q->front)指向隊頭節點的下乙個節點(q->front->next),此時隊頭元素已經脫鏈,如果出隊的是最後乙個元素時,還應將隊尾(q->real)置為空(null),最後再釋放*p的記憶體

我的實驗報告裡面的演算法分析也只寫了佇列的出隊和入隊操作,個人感覺佇列的出隊和入隊操作是佇列不同於線性表的地方

佇列的入隊和出隊操作

讓我們跟著課程佇列的特點。好比我們生活中也會發生的排隊,先排隊的人先得到服務,先走出佇列,後面來的人後得到服務,所以它排在末尾 我們以順序隊列為式,也就是說佇列的元素存放的都是連續的單元也就是說看起來rear 指 針已經指向末端但是其實前面還有空間可以存放元素,但是已經放不進去了。我們讓front ...

隊的定義 入隊和出隊

隊是限定在表的一端進行插入另一端進行刪除的線性表。特點 先進先出 fifo 後進後出 lilo 包含順序隊和鏈隊 順序隊 front rear 0表示隊空,入隊rear 1,出隊 front 1 順序隊的容量定義為m。但是當front rear m時,會導致假溢位,因為此時隊裡沒有元素,卻被認為隊滿...

鏈佇列的入隊 出隊

test demo.cpp 定義控制台應用程式的入口點。include stdafx.h include stdio.h include windows.h define queuesize 100 假定預分配的佇列空間最多為100個元素 typedef char datatype 假定佇列元素的資...