資料結構的C實現 迴圈佇列

2021-06-05 05:16:05 字數 926 閱讀 9289

//迴圈佇列

#include #include #define ok 1

#define error 0

#define overflow -2

#define maxsize 10//迴圈佇列的最大元素數量

typedef char elemtype;//元素型別

typedef struct _queue

queue;

//初始化佇列

int initqueue(queue *q)

//遍歷佇列

int showqueue(queue *q)

printf("佇列中的元素為:\n");

for(i=((q->front)%maxsize);irear;i=((i+1)%maxsize))

printf(" %c",q->elems[i]);

printf("\n");

printf("隊首元素為%c\n",q->elems[q->front]);

printf("隊尾元素為%c\n",q->elems[q->rear-1]);

return ok;

}//向隊尾插入元素e

int inqueue(queue *q,elemtype e)

q->elems[q->rear]=e;

q->rear=(q->rear+1)%maxsize;

return ok;

}//從隊首刪除元素

int outqueue(queue *q)

printf("被刪除的隊首元素為%c\n",q->elems[q->front]);

q->front=(q->front+1)%maxsize;

return ok;

}//佇列中的元素個數

int length(queue *q)

main()

資料結構 迴圈佇列的實現

介面 package com.company.queue queue 佇列介面 author heng public inte ce queue實現類 package com.company.queue loopqueue 迴圈佇列的實現 迴圈佇列需要從底層寫起 不再用array類了 author ...

資料結構 佇列 迴圈佇列 陣列實現

佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 tail 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。以陣列實現的佇列結構,如果是普通佇列,頻繁增刪元素,會造成陣列記憶體空間的大量流失,所...

資料結構實現 1 4 迴圈佇列(C 版)

3.演算法複雜度分析 4.完整 通過第三節我們知道,陣列佇列在出隊操作中需要花費o n 的時間複雜度,原因在於出隊時需要移動大量元素。如果我們可以迴圈利用空間,那麼問題就迎刃而解。所以,迴圈佇列應運而生。迴圈佇列結構如下 這裡為了直觀,將佇列繪製成環形,實際記憶體依舊是連續的記憶體塊。首先迴圈佇列作...