广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 7218 个阅读者
 
<<   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.084617 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言