資料結構 佇列的基本操作

2021-09-25 15:02:28 字數 1639 閱讀 4654

佇列:簡稱隊,一種受限的線性表,只允許在表的一端進行插入,在表的另一端進行刪除操作(先進先出)

隊頭:進行刪除的一端

隊尾:進行插入的一端

空佇列:不含任何元素的空表

佇列的基本操作:

佇列分為順序佇列、迴圈佇列和鏈式佇列,順序佇列容易發生假溢位現象(隊尾超過限定長度),故不常用,下面是迴圈佇列和鏈式佇列的基本操作

附上鏈式佇列的指標變化圖:

**實現:

#include #include #include #define maxsize 50

/*由於非迴圈佇列會造成假溢位現象,故使用迴圈佇列,提高空間利用率*/

/****************===迴圈佇列基本操作******************************==*/

/*typedef struct

sqqueue;

void initqueue(sqqueue &q)

int queueempty(sqqueue q)

else

}int queuelength(sqqueue q)

else

}void gethead(sqqueue q,int &x)

else

}void enqueue(sqqueue &q,int x)

else

}void dequeue(sqqueue &q,int &x)

else

}void print(sqqueue q)}*/

/****************===鏈式佇列基本操作(表頭刪除元素,表尾插入元素)******************************=*/

typedef struct linknode

linkqueuenode;

typedef struct

linkqueue;

void initqueue(linkqueue *l)

int queueempty(linkqueue *l)

else

}int queuelength(linkqueue *l)

return count;

}void enqueue(linkqueue *l,int x)

void dequeue(linkqueue *l,int &x)

else

}void print(linkqueue *l)

}int main()

dequeue(q,x);

printf("%d\n",x);

print(q);

*/linkqueue l;

initqueue(&l);

enqueue(&l,3);

enqueue(&l,5);

print(&l);

int x;

dequeue(&l,x);

printf("出隊的元素為:%d\n",x);

printf("剩餘元素為:");

print(&l);

return 0;

}

資料結構佇列的基本操作

include include 鍊錶 佇列的鏈式儲存結構 typedef struct queuenode qnode,queueptr 指向佇列頭和尾的指標結構體 typedef struct queue int main 構造乙個空佇列 void initqueue queue q 向隊尾插入元...

資料結構 佇列的基本操作

佇列是一種先進先出 first in first out 的線性表,簡稱fifo。與棧不同,棧是一種後進先出 先進後出 的線性表。在佇列中,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而an是隊尾元素。這樣我們就可以刪除時,總是從a1開始,而...

資料結構 鏈佇列基本操作

include 鏈佇列的基本操作,首先我們要知道佇列是在隊頭進行刪除,隊尾進行插入 include includetypedef struct sq sq typedef struct squeue 到此,佇列的資料結構型別定義完畢 void init squeue squeue p 佇列的初始化 ...