廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7217 個閱讀者
 
<<   1   2  下頁 >>(共 2 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
alanlinx 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x25
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++] 堆疊和佇列…老師說寫不出來不給我們畢業阿
請教一下兩題程式~___~(C語言)

(a) Stack (堆疊) 實作 (使用 array)
寫一主程式:main(),三個副程式:push()、pop() & list()。
1. 在 main() 中建立一個 Stack 資料結構 (Stack 的 Size 與型別自訂,integer 或 character 都可)
2. push(stack, data):將 data 放進 stack 最上面。
3. pop(stack, data):將 stack最上面的資料刪除並拷貝至 data。
4. list(stack):將目前 stack 中的資料 (由下到上的順序) 印出。

程式執行時,輸出以下選項:
<1> push
<2> pop
<3> list
<4> quit
當 user 選 <1> 時,提示 user 輸入想 push 的資料
當 user 選 <2> 時,輸出 pop 出的資料
當 user ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




alanlinx=邪神掠奪者=阿州
看到我記得要打招呼喔

獻花 x0 回到頂端 [樓 主] From:台灣教育部 | Posted:2005-11-04 09:27 |
nick888 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x13
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

首先先把大大你的想法
寫出來吧
以stack來說
在整體的設計上

題目有說明了 是主程式:main(),三個副程式:push()、pop() 跟 list()。
你要決的是用什麼來模擬stack 、你可以選擇array、link list 等…
所以這個是你的程式主要架構
而每個function的功能在題目上也說的很清楚
push(),提示 user 輸入想 push 的資料
pop() ,輸出 pop 出的資料
list(),輸出目前 stack 中的資料 (由下到上的順序)
到這一步,都是很清楚的,也就是我們有整體的程式計畫了,接下來就是實作了

以array來說,你在main中宣告一個array ex: int array[10]; 這時就說明了這個stack最大是10
再來要記錄的是現在的資料在哪個位置用一個 int index,預設是0 來存當index是9時就是full 是0時就是empty,再來就是出現一個選單,讓使用者可以選擇,我想大大應該可以寫出來,例如在一個loop 中用switch是4就離開, 1 就執行push() 2就執行 pop() 3就執行list() ,接下來大大可以寫push()、pop()、list()裡面只要簡單的輸出就好,像cout<<" 這個是push function"<<endl; 主要讓寫好main可以test跟debug

接下來是實作個別的fuction了,像push,把資料放在array[index] 之後index++ 因為stack裡已放一個了,當然要先check index是不是10 也就是full,而pop就把array[index] 的資料輸出 index--,當然index 也要先check 是不是0 empty,最後list 就是把 array中 0到index的資料印出。 大大可以每寫完一個function就test 跟debug一次,這樣找問題會快一點…也比較容昜。

最後就是全部完成後,寫一個程式的說明,跟全部程式的test跟debug,及最佳化,確定程式是照一開始的設計跑的,這樣子把問題分開寫,大大就不會覺的問題很大了…從上到下的設計可以省來你不少時間的。祝大大可以順利寫完畢業喔


獻花 x0 回到頂端 [1 樓] From:美國Qwest用戶 | Posted:2005-11-04 17:12 |
alanlinx 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x25
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

只看懂一些…老師出的這個真的超出我們的程度了…
課本上的範例都懂…但…唉~><~


alanlinx=邪神掠奪者=阿州
看到我記得要打招呼喔

獻花 x0 回到頂端 [2 樓] From:未知地址 | Posted:2005-11-04 20:51 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我是不曉得你學了多少....
但這些都是基本的資料結構....
你去翻資料結構的書一定會有你要的答案....
就算沒有全部也有部份....
不然就上網找.....
這種題目都有一定模式的答案...
大部分照抄就可以了.....


沒東西可以抓
獻花 x0 回到頂端 [3 樓] From:美國 | Posted:2005-11-04 21:37 |
mmpo
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

送你一個惡搞版的 ^^
#include<iostream>
#include<stack>

using namespace std;

int main(void){
stack<int> s;
stack<int> b;
int i=1,temp;
while(i){
  cout<<" <1> push \n <2> pop \n <3> list \n <4> quit "<<endl;
  cin>>i;
  switch(i){
    case 1 :
    cout<<"press a number"<<endl;
    cin>>temp;
    s.push(temp);
    break;
    case 2 :
    if (!s.empty()){
      temp=s.top();
      s.pop();
      cout<<"stack pop "<<temp<<endl;
    }
    else
      cout<<"stack empty"<<endl;
    break;
    case 3 :  
    while(!s.empty()){
      b.push(s.top());
      s.pop();
    }          
    while(!b.empty()){
      cout<<b.top()<<endl;
      b.pop();
    }
    break;
    case 4 :              
    i=0;
    break;
  }
}
  system("pause");
}

若是這樣也行,再附上第二題的惡搞版


獻花 x0 回到頂端 [4 樓] From:台灣中華電信 | Posted:2005-11-06 16:35 |
alanlinx 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x25
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

可以~~第二個也吧@@
這裡的高手果然也是有的@@


alanlinx=邪神掠奪者=阿州
看到我記得要打招呼喔

獻花 x0 回到頂端 [5 樓] From:台灣教育部 | Posted:2005-11-07 07:35 |
Darren
數位造型
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x4 鮮花 x144
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片


測試一下, 這樣加了顏色會不會很花阿?

#include<iostream>
#include<stack>

using namespace std;

int main(void){
stack<int> s;
stack<int> b;
int i=1,temp;
while(i){
cout<<" <1> push \n <2> pop \n <3> list \n <4> quit "<<endl;
cin>>i;
switch(i){
  case 1 :
  cout<<"press a number"<<endl;
  cin>>temp;
  s.push(temp);
  break;
  case 2 :
  if (!s.empty()){
    temp=s.top();
    s.pop();
    cout<<"stack pop "<<temp<<endl;
  }
  else
    cout<<"stack empty"<<endl;
  break;
  case 3 :  
  while(!s.empty()){
    b.push(s.top());
    s.pop();
  }      
  while(!b.empty()){
    cout<<b.top()<<endl;
    b.pop();
  }
  break;
  case 4 :          
  i=0;
  break;
}
}
system("pause");
}



獻花 x0 回到頂端 [6 樓] From:台灣 和信超媒體寬帶網 | Posted:2005-11-07 14:58 |
mmpo
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

不會吧!~~這樣惡搞也可以
queue的部份我參考這個MSDN寫的
點我點我
我覺得你還是花些時間去看一下自己親手寫寫看

若真的寫不出來,我再貼出來讓你用雅幣來買


[ 此文章被mmpo在2005-11-07 21:34重新編輯 ]


獻花 x0 回到頂端 [7 樓] From:台灣中華電信 | Posted:2005-11-07 20:52 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用mmpo於2005-11-7 20:52發表的 :
不會吧!~~這樣惡搞也可以
queue的部份我參考這個MSDN寫的
點我點我
我覺得你還是花些時間去看一下自己親手寫寫看

.......

如果交出去我想應該是畢不了業吧= =....


沒東西可以抓
獻花 x0 回到頂端 [8 樓] From:美國 | Posted:2005-11-08 01:07 |
alanlinx 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x25
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

有可能><
我還在研究到底該怎麼寫


alanlinx=邪神掠奪者=阿州
看到我記得要打招呼喔

獻花 x0 回到頂端 [9 樓] From:台灣教育部 | Posted:2005-11-08 08:18 |

<<   1   2  下頁 >>(共 2 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.090558 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言