簡單資料結構 佇列

2021-06-22 00:38:38 字數 951 閱讀 5678

第一次發csdn部落格,有點小激動,因為自己看了不少csdn裡的大牛的博文,很崇拜。心想著什麼時候自己也寫一篇。現在是時候了。接觸c語言有三年了,但是僅僅是皮毛,而且在學校也很少用,現在為做畢設,用到佇列,發現已經忘得一乾二淨,於是重新翻書,寫此算做筆記。內容如有不當還請諸位指出。

佇列 是一種線性表,先進先出,准許插入的一端是隊尾,准許刪除的一端是隊頭。類似於排隊購物,先來的先購買先離開,相當於對頭。佇列儲存結構有兩種:順序儲存和鏈式儲存。現在只介紹順序儲存。

順序佇列在存數之前先分配一塊連續的記憶體單元(初始化大小)。有兩個指標指示佇列的兩個位置。front指對頭,rear指隊尾(初始化為0)。插入元素時rear加1,指到下個位置。有元素出隊時,point加1。

順序佇列會出現「假溢位」,提出順序迴圈佇列。有兩種解決方法。參考博文(後面提到)中提到一種,現在說另一種:增加乙個標誌位,設定乙個標誌位flag,初始隊列為空時flag=0;當元素入隊後若front==rear,flag置1;當出隊成功若front==rear,則flag置0;所以,隊列為空的判斷條件是front==rear&&flag==0;隊列為滿的判斷條件是front==rear&&flag==1;

現在貼出這種方法的入隊和出隊操作c語言實現。

int enqueue(queue *q,int *x)          //入隊 }

int dequeue(queue *q,int *y)                  //出隊

}   

這裡只是文字解釋,沒能附相關演示,未涉及到的點或有不解

請看

簡單資料結構

編碼定義的變數在執行時的會存放在記憶體中的靜態儲存區 棧區或堆區 1.申請一塊連續的空間 陣列 可以存放在上述的三個區中 2.申請可變長的空間 鍊錶 只能存放在堆區中 其他所有的資料結構在記憶體中存放時,都只能是陣列或者鍊錶的結構,只是在 邏輯上怎麼使用而已。棧的使用 後進先出 計算簡單加減乘除式子...

簡單資料結構

一 樹狀陣列 樹狀陣列是一種支援單點修改區間查詢的資料結構,這個陣列是以二進位制的形式儲存的,例如7的二進位制是111,最右邊1代表1,那麼c 7 就是從a 7 往前1個數這個區間所有a陣列值的和,再例如8的二進位制是1000,最右邊的1代表8,那麼c 8 就代表從a 8 往前8個數 1 8 這個區...

簡單資料結構的實現之順序棧

include using namespace std const int stack init size 100 ifndef sqstack h included define sqstack h included template class sqstack int stacklength e...