[導(dǎo)讀]無(wú)意中發(fā)現(xiàn),labview中的隊(duì)列在編程中簡(jiǎn)約且實(shí)用。用白話描述一下隊(duì)列就是:創(chuàng)建一個(gè)棧,先入先出的棧,通過(guò)元素如隊(duì)列將該元素壓進(jìn)棧,通過(guò)元素出隊(duì)列將元素彈出。同時(shí),可以設(shè)置隊(duì)列的大小,當(dāng)隊(duì)列滿的時(shí)候,協(xié)調(diào)隊(duì)
無(wú)意中發(fā)現(xiàn),labview中的隊(duì)列在編程中簡(jiǎn)約且實(shí)用。用白話描述一下隊(duì)列就是:創(chuàng)建一個(gè)棧,先入先出的棧,通過(guò)元素如隊(duì)列將該元素壓進(jìn)棧,通過(guò)元素出隊(duì)列將元素彈出。同時(shí),可以設(shè)置隊(duì)列的大小,當(dāng)隊(duì)列滿的時(shí)候,協(xié)調(diào)隊(duì)列的輸入和輸出,讓輸入(也就是元素如隊(duì)列)等待,直到出現(xiàn)了存儲(chǔ)空間,才執(zhí)行輸入。下面是隊(duì)列的函數(shù),包括:
我們看一個(gè)典型應(yīng)用:(這個(gè)是labview幫助里面的例子)
前面產(chǎn)生一個(gè)隨機(jī)數(shù),壓進(jìn)隊(duì)列,后面的循環(huán)從隊(duì)列中讀出元素。這兩個(gè)循環(huán)可以設(shè)置不同的循環(huán)時(shí)間。當(dāng)入隊(duì)列的時(shí)間快于出隊(duì)列的時(shí)間,隊(duì)列很快就會(huì)滿掉,此時(shí),隊(duì)列調(diào)節(jié)入隊(duì)列循環(huán)等待,當(dāng)有空間時(shí),執(zhí)行如隊(duì)列循環(huán)。當(dāng)入隊(duì)列時(shí)間小于出隊(duì)列時(shí)間時(shí),后一個(gè)循環(huán)等待隊(duì)列中存在元素時(shí),才能夠讀取元素(元素出隊(duì)列)。t入反之:
隊(duì)列先解釋道這了。我現(xiàn)在就想試試字符串是不是可以壓進(jìn)隊(duì)列,同時(shí)讀出來(lái)會(huì)是什么樣子。下面的實(shí)驗(yàn)就是:我謝了這樣的一段代碼,是想讓字符串輸入隊(duì)列再讀出來(lái)??驁D如下:
發(fā)現(xiàn)這段代碼執(zhí)行不下去。一直在執(zhí)行但是不能結(jié)束。經(jīng)過(guò)分析,我認(rèn)為是這樣的:由于我把隊(duì)列的大小設(shè)置成為2,而我需要雅茹三個(gè)元素,所以,必須等待有一個(gè)元素被讀取之后,才能將第三個(gè)元素壓進(jìn)去。而我設(shè)計(jì)的這個(gè)程序有問(wèn)題,問(wèn)題在于:我的后一個(gè)循環(huán)的隊(duì)列引用是從第一個(gè)循環(huán)傳過(guò)來(lái)的,第一個(gè)循環(huán)沒(méi)執(zhí)行完,那么第二個(gè)循環(huán)就無(wú)法執(zhí)行。但是第一個(gè)循環(huán)要想結(jié)束,必須需要將第三個(gè)元素壓入,但是條件是第二個(gè)循環(huán)讀出來(lái)一個(gè)元素。他們互相限制,自然就死循環(huán)了。于是把程序框圖改成:
隊(duì)列引用菜前面直接引過(guò)來(lái),就不會(huì)出現(xiàn)這樣的問(wèn)題。并且所有的三個(gè)元素沒(méi)有丟失。能夠全部壓進(jìn)隊(duì)列并被獨(dú)取出來(lái)。另外:如果設(shè)置的是字符串的話,確實(shí)是以字符串為單位的。壓入的時(shí)候什么樣子,讀出來(lái)就是什么樣子。就像一個(gè)字符串?dāng)?shù)組一樣。OVER
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。