就是給q初始化一下,給表頭和表尾都賦值NULL.&q就是地址而已。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)崇明免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
當(dāng)然是在循環(huán)體內(nèi)調(diào)用,如果沒有其他限制條件,循環(huán)一次就調(diào)用函數(shù)一次,直至循環(huán)條件結(jié)束,循環(huán)結(jié)束。
printf(輸出函數(shù));scanf(輸入函數(shù));} 引用自己定義的函數(shù)一般需要先聲明(如果引用位置在定義位置之后,就不需要聲明可直接引用。
在Ac中有完整的函數(shù)定義,在Ac中添加一下要用到的函數(shù)原型(聲明)就可以了,例如:在Ac中:有函數(shù)void A2(){...};。在Ac中:在文件前頭增加一行:void A2();就可以了。
使用鏈表時(shí)候,先確認(rèn)要使用的是單向鏈表,還是雙向鏈表,或者是循環(huán)鏈表。一定要初始化。添加節(jié)點(diǎn)時(shí)候,要注意是否隊(duì)列已滿。刪除節(jié)點(diǎn)的時(shí)候,要注意隊(duì)列是否為空。要有可以判斷鏈表是否為空的函數(shù)。
如果你用vc,#includedeque就好了,但是注意要加上using naemspace std;我是當(dāng)你用的c++的STL,STL中沒有真正的隊(duì)列和棧,他們都是通過對(duì)雙端隊(duì)列的改造得到的,所以包含的文件可能和你想的不一樣。
函數(shù)scanf格式化讀取輸入字符、數(shù)字的時(shí)候,只讀取固定大小的數(shù)據(jù),多余的數(shù)據(jù)(換行符,多輸入的字符就留在了輸入流中),繼續(xù)作為輸入。
q.push(m); // queue是C++STL模板庫的東西,需要使用push來插入元素,詳細(xì)信息你可以參考MSDN來了解其使用及內(nèi)容。
int Succ (int Value, Queue Q )Value 是 要插到哪里去 如果value太大,大于隊(duì)列的容量,就讓他插到隊(duì)列的頭去,重頭再來一遍。
pnew這個(gè)代碼從隊(duì)列的尾部增加新節(jié)點(diǎn),然后pq-rear = pnew更新隊(duì)列尾部指針。隊(duì)列的數(shù)據(jù)結(jié)構(gòu)形式就是由一個(gè)頭front指針,一個(gè)尾rear指針來表征,items的設(shè)計(jì)是用空間換時(shí)間,涉及隊(duì)列大小的操作會(huì)非常方便。
就是給q初始化一下,給表頭和表尾都賦值NULL.&q就是地址而已。
線程是共享全局變量的,你只要定義一個(gè)全局的隊(duì)列類型的變量而分別在一個(gè)線程中更改其中的值,另外一個(gè)線程直接讀隊(duì)列就好,不過記得要在對(duì)隊(duì)列操作時(shí)設(shè)置lock或者semaphore。
q.push(m); // queue是C++STL模板庫的東西,需要使用push來插入元素,詳細(xì)信息你可以參考MSDN來了解其使用及內(nèi)容。
pq-rear-next = pnew這個(gè)代碼從隊(duì)列的尾部增加新節(jié)點(diǎn),然后pq-rear = pnew更新隊(duì)列尾部指針。
我改了pop函數(shù)。你忘了第一個(gè)Q-head 被你指NULL了,而在后面的函數(shù)push中你if()中Q-head=Q-prev=current;語句從來沒有執(zhí)行過,所以head一直是指向空的。你可以看看我給你改的調(diào)試信息。