佇列是一種先進先出的的資料結構,我們同樣可以使用陣列、鍊錶等來實現。我們可以在佇列的尾部進行插入元素,在佇列的頭部取出元素。普通的佇列由於空間利用率不高,所以我們一般都用迴圈佇列。迴圈佇列中最重要的的兩個操作就是判斷是否為空和是否已滿。當head==tail時,表示隊列為空。當(tail+1)%max_size == head,表示佇列已滿。
我判斷隊滿的方法:犧牲乙個單元來區分對空和隊滿,入隊時少用乙個佇列單元,相當於浪費乙個儲存空間。「隊頭指標的隊尾指標的下一位置作為隊滿的標誌」。**上傳至: 。
(1)進佇列
//進佇列
void enqueue(int value)else
}
(2)出佇列
//出佇列
int dequeue()else
printf("%d\n",temp);
return temp;
}
(3)判斷佇列是否為空
//判斷佇列是否為空
int isempty()
printf("佇列不為空\n");
return 0;
}
(4)判斷佇列是否已滿
//判斷佇列是否已滿
/** * 我這裡判斷隊滿的的方法:
犧牲乙個單元來區分隊空和隊滿,入隊時少用乙個佇列單元。如果陣列的大小為size,那麼實際只能存放(size-1)個元素。(這是比較常用的判滿的方式)
* */
int isfull()
printf("佇列未滿\n");
return 0;
}
(5)列印佇列元素
//列印出佇列元素
void printqueue()
printf("\n");
}
(6)測試**
int main(int argc, const char * argv)
迴圈佇列 陣列 C語言實現
佇列的基本概念 include include define maxsize 50 設定佇列大小 define elementtype int 方便操作,這裡定義資料型別為 int typedef struct queue 初始化佇列 void init que queue q 引數為指標型別,下面...
靜態陣列實現的順序表(C語言實現)
在寫順序表之前我們先來了解下相關的一些知識,以便我們後期能夠寫出更好的東西。資料結構是相互之間存在一種或多種特定關係的資料元素的集合。根據資料元素之間關係的不同特性,通常有如下種基本結構 集合 結構中的元素之間除了 同屬於乙個集合 的關係外,別無其他的關係。如 廣義表。線性結構 結構中的資料元素之間...
c語言實現螺旋陣列
螺旋陣列 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 分析 這是乙個一維維度和二維維度相等的陣列arr len len 將num 1開始從arr 0 0 賦值,直到num len len結束賦值。在賦值過程中,如...