操作
時間複雜度(t(n))
空間複雜度(s(n))
求長度o(1)
o(1)
判斷是否為空
o(1)
o(1)
得到隊首元素
o(1)
o(1)
插入元素
o(1)
o(1)
刪除元素
o(1)
o(1)
清空佇列
o(1)
o(1)
判斷是否已滿
o(1)
o(1)
/* 資料結構分析與學習專欄
* 作 者: 高祥
* 完成日期: 2015 年 4 月 6 日
* 版 本 號:013
*任務描述:針對鏈式佇列,實現8個基本操作
* 1:建立佇列 ;
* 2:輸出佇列 ;
* 3:求佇列的長度 ;
* 4:判斷佇列是否為空 ;
* 5:得到佇列的隊首元素;
* 6:向佇列中插入元素(插在隊尾) ;
* 7:刪除佇列的元素(刪除隊首元素);
* 8: 清空佇列;
*主要函式:
* 1. initqueue(queue &q);//初始化佇列
* 2. createqueue(queue &q);//建立佇列
* 3. output(queue q);//輸出佇列元素
* 4. int queuelength(queue q);//求佇列的長度
* 5. isempty(queue q);//判斷佇列是否為空
* 6. isfull(queue q);//判斷佇列是否已滿
* 7. gethead(queue q);//得到佇列首元素
* 8. enqueue(queue &q,elemtype elem);//插入元素
* 9.dequeue(queue &q);//刪除元素
* 10. clearqueue(queue &q);//清空佇列 */
#include#includeusing namespace std;
#define ok 1
#define false 0
#define maxsize 10
typedef int elemtype;
typedef int status;
typedef struct
queue;
status initqueue(queue &q);//初始化佇列
void createqueue(queue &q);//建立佇列
void output(queue q);//輸出佇列元素
int queuelength(queue q);//求佇列的長度
status isempty(queue q);//判斷佇列是否為空
status isfull(queue q);//判斷佇列是否已滿
void gethead(queue q);//得到佇列首元素
status enqueue(queue &q,elemtypeelem);//插入元素
void dequeue(queue &q);//刪除元素
void clearqueue(queue &q);//清空佇列
void interaction();
int main()
break;
case 7:
dequeue(q);
break;
case 8:
clearqueue(q);
break;
default:
cout<
break;}}
return 0;}
status initqueue(queue &q)//初始化佇列
q.first=q.last=0;//初始化隊列為空
return ok;}
void createqueue(queue &q)//建立佇列
coutenqueue(q,elem);//借用插入元素函式
}cout<
output(q);
}} void output(queue q)//輸出佇列元素
return q.last+maxsize-q.first;
//首先此時(q.last
佇列的操作與實現 迴圈佇列
由於順序佇列有 假溢位 的缺點,所以在應用中,運用更多的是迴圈佇列來實現佇列的順序儲存。由於引用傳引數,所以原始檔需要.cpp字尾,即c 檔案儲存。迴圈佇列的判空條件為 q.rear q.fornt 迴圈佇列的判讀隊滿的條件是 q.rear 1 maxsize q.fornt 下面是佇列實現的儲存型...
迴圈佇列操作實現
該實現front始終指向當前的頭結點,rear始終指向尾結點的 下乙個結點 include include define maxnum 10 define datatype int typedef struct queue queue void initqueue queue p int empty...
佇列的一種實現 迴圈佇列
佇列的一種實現,迴圈佇列,通過使用固定長度陣列及首尾指標實現佇列的入隊 出隊等 class circularqueue 元素入隊,成功則返回true,否則false param value return public boolean put t value if isempty true tail ...