伊莉討論區

標題: Queue 陣列實作 [打印本頁]

作者: game8412    時間: 2015-9-30 10:04 AM     標題: Queue 陣列實作

本帖最後由 game8412 於 2015-10-2 04:03 PM 編輯

今有一類別定義如下class Queue
{  
int[] num_Array; //佇列陣列  
int Front=-1;//佇列指標
int Rear=-1; //佇列指標  
int n; //佇列大小
}
重複的程式碼請自行訂一方法來縮短程式長度,例如: Main_Screen();佇列元素之增加、取出請各自定義方法,例如:Queue_Add(),Queue_Delete()
判斷佇列是否為滿(Full)或空(Empty),請自行定義,例如:Is_Full(),Is_Empty()

執行結果

-----------------------     
Queue Operating
(1) Add Element
(2) Delete Element
-----------------------
=>1
陣列目前無任何元素(利用程式判斷)
目前陣列指標 Rear=-1 表示有空間
陣列指標Rear操作後為0
請輸入欲增加之元素=>3
陣列目前元素為一個
還要繼續操作(Y/N)=>Y
陣列指標Rear操作後為1
請輸入欲增加之元素=>1
陣列目前元素為二個
還要繼續操作(Y/N)=>Y
陣列指標Rear操作後為2
請輸入欲增加之元素=>4
陣列目前元素為三個
還要繼續操作(Y/N)=>Y
指標已達陣列上限無法新增元素
(狀況1))請問是否要結束操作(Y/N)=>Y        
            謝謝使用本系統
(狀況二)請問是否要結束操作(Y/N)=>N


----------------------     
Queue Operating
(1) Add Element
(2) Remove Element
-----------------------
=>2
目前有元素可供取出
目前陣列內容為 3,1,4
陣列指標Front操作後為0
請輸入欲取出之元素=>4
還要繼續操作(Y/N)=>Y
目前陣列內容為 3,1
陣列指標Front操作後為1
請輸入欲取出之元素=>1
還要繼續操作(Y/N)=>Y
目前陣列內容為 3
陣列指標Front操作後為2
請輸入欲取出之元素=>3
還要繼續操作(Y/N)=>Y
目前陣列已無任何元素可供操作
因為Front=Rear
(狀況1))請問是否要結束操作(Y/N)=>Y      
             謝謝使用本系統
(狀況二)請問是否要結束操作(Y/N)=>N
----------------------     
Queue Operating
(1) Add Element
(2) Remove Element
-----------------------
=>1
陣列目前無任何元素(利用程式判斷)
請輸入欲增加之元素=>3
陣列目前元素為一個
還要繼續操作(Y/N)=>Y
請輸入欲增加之元素=>1
陣列目前元素為二個
還要繼續操作(Y/N)=>Y
請輸入欲增加之元素=>4
陣列目前元素為三個還要繼續操作(Y/N)=>N

---跪求大大給個範例 不用給我完整的程式碼...手上沒教科書 實在聽不懂教授在說什麼...我學過的語法是java語法







作者: theloserbm    時間: 2015-9-30 10:39 AM

指令都給得滿完整的, 把那一行行的字轉成程式碼就好
不過這題目一時queue一時stack的沒問題嗎?
還是你的問題是不知道怎樣包裝main class來初始化queue和接受使用者輸入?
作者: snowflying    時間: 2015-9-30 05:22 PM

我用的編譯器是eclipse


eclipse 編譯器?
那只是 IDE 吧

我覺得問題不是只有出在 java 語法上
可以先去看一下資料結構 (stack、queue)
若是有 java 語法基礎,可以搜尋 java、C、C++ 的範例來參考看看
java util 底下的 class ,裡面有哪些方法,也可以參考看看,比較知道要定義與實作哪些

若是題目出自教科書,可以找看看有沒有電子檔
或者向圖書館及其他人借

作者: game8412    時間: 2015-10-1 01:08 AM

theloserbm 發表於 2015-9-30 10:39 AM
指令都給得滿完整的, 把那一行行的字轉成程式碼就好
不過這題目一時queue一時stack的沒問題嗎?
還是你的問 ...

我複製過來的時候還沒修改
剛再去看了一下 已全改為Queue了
另外我確實不知道包裝main來初始化queue這段話...煩請指教
而我知道使用Scanner可以取得使用者輸入
作者: game8412    時間: 2015-10-1 01:12 AM

本帖最後由 game8412 於 2015-10-1 01:14 AM 編輯
snowflying 發表於 2015-9-30 05:22 PM
eclipse 編譯器?
那只是 IDE 吧

這個作業是資料結構這門課所出的
但課本至今仍未拿到
而教授卻一直講一直講
實在聽不是很懂
上週是教stack堆疊
教授表示操作方法跟stack相似
但我根本不知道怎麼寫 哈
就來這裡當伸手牌了

補充內容 (2015-10-1 01:18 AM):
我當然也上網找過範例了
只是題目不盡相同
且都是c的語法...
我沒學過所以看不懂
作者: kwj    時間: 2015-10-1 11:07 AM

game8412 發表於 2015-10-1 01:12 AM
這個作業是資料結構這門課所出的
但課本至今仍未拿到
而教授卻一直講一直講

所以樓主的問題,是根本不知道 Stack 跟 Queue 的運作原理
還是不知道它的程式碼怎麼寫??
作者: game8412    時間: 2015-10-1 01:17 PM

kwj 發表於 2015-10-1 11:07 AM
所以樓主的問題,是根本不知道 Stack 跟 Queue 的運作原理
還是不知道它的程式碼怎麼寫?? ...

確實是不知道運作原理
我想要一個開頭...
但不知道如何開始

作者: kwj    時間: 2015-10-1 02:54 PM

game8412 發表於 2015-10-1 01:17 PM
確實是不知道運作原理
我想要一個開頭...
但不知道如何開始

原理其實也沒什麼困難的,日常生活都遇得到
(其實電腦科學裡,很多結構、演算法都是從日常生活裡挖出來運用的)

Stack 老師在講解時,應該會說像是把書本疊在桌上的例子吧?
例如桌上疊了 10 本書,要拿的時候就只能最上面那本先拿
要再放第 11 本書時,也是從最上面繼續疊
所以最底下的第 1 本書,一定是疊在它上面的所有書都拿走以後才能拿
(當然因為這只是舉例,所以不考慮書本疊起來時,可以小心地從中間抽一本出來的狀況 XD)

Queue 就是一般排隊的狀況,先進來的先出去
例如排隊買星巴克,站在最前面的客人一定先到達櫃檯點餐
晚來的人要排在隊伍最末端~

所以樓主對於運作原理,不懂的地方大略在哪?
作者: game8412    時間: 2015-10-1 09:25 PM

kwj 發表於 2015-10-1 02:54 PM
原理其實也沒什麼困難的,日常生活都遇得到
(其實電腦科學裡,很多結構、演算法都是從日常生活裡挖出來 ...

印象中教授在教Stack的時候確實是用這個範例 不過程式碼該怎麼寫一點概念都沒有
而Queue教授是說先進先出 後進就後出這樣
作者: ming2348381    時間: 2015-10-2 09:56 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: game8412    時間: 2015-10-2 03:59 PM

本帖最後由 game8412 於 2015-10-2 04:00 PM 編輯

目前只完成這樣...[attach]111007440[/attach]
題目中的"佇列元素之增加、取出請各自定義方法,例如:Queue_Add(),Queue_Delete()"跟"判斷佇列是否為滿(Full)或空(Empty),請自行定義,例如:Is_Full(),Is_Empty()"
我不太確定這些方法要建立在哪裡 且下一步該怎麼繼續寫下去了...

作者: ming2348381    時間: 2015-10-2 06:01 PM

提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 伊莉討論區 (http://aaa.eyny.com/) Powered by Discuz!