一、隊列ADT以及C語言實現
1 隊列的原理以及ADT分析
隊列是說:把一些數據按先進先出來組織,如同日常生活中的排隊過程。
隊列最主要的操作是
<1> 數據加入隊列;<2> 從隊列中取出數據;
加入隊列只能加入到隊列尾巴上,而從隊列中取出數據、則只能是取出隊列中的第一個,一般不允許有插隊、或隊列中間刪除數據的要求。
由上述分析,隊列的ADT見教材P68,同時我們也可以看出:由于隊列基本不存在中間插入/刪除數據的情況,所以隊列用順序表完成就基本足夠了,但如果進入隊列的數據可能很大或者項目很多,隊列也有用鏈表完成的。同樣的情況,如果進出棧的數據項目很多且數量很不確定,則棧也可能用鏈表來完成。
在這里為了復習前面的知識,我們的程序將使用鏈表來完成一個隊列。于是我們可以把前面鏈表范例b4.c復制過來。
首先定義進出隊列的數據表ElemType,這里我們依然使用:
做完這些工作后,就可以按ADT表的要求進行編程了。
struct Elem