佇列:簡稱隊,一種受限的線性表,只允許在表的一端進行插入,在表的另一端進行刪除操作(先進先出)
隊頭:進行刪除的一端
隊尾:進行插入的一端
空佇列:不含任何元素的空表
佇列的基本操作:
佇列分為順序佇列、迴圈佇列和鏈式佇列,順序佇列容易發生假溢位現象(隊尾超過限定長度),故不常用,下面是迴圈佇列和鏈式佇列的基本操作
附上鏈式佇列的指標變化圖:
**實現:
#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 佇列的初始化 ...