实验报告一.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告一

实验报告一 实验人范丽君 负责编写程序 邢丽娟 负责试验报告即自然语言分析 张妙华 负责DEBUG及配合自然语言分析 刘姗 负责 DEBUG [实验目的] 学会如何运用栈解决实际问题。 锻炼了C++的基本技巧和能力 【实验问题】 运用栈的知识,对一系列无序的火车车厢进行排列。变成有序的序列,并且用最少的栈排序 【实验过程】 (1)运用自然语言描写 例如数组中有 1 3 2 5 4 我们可以用两个栈 top top bottom | | | 1 3 2 5 4 将右边的栈顶元素pop出来作为cur,并判断左边的栈顶元素是否大于它,如果 是,则pop出来,push进右边的栈,然后将cur push进左边的栈。 1 3 2 5 4 这时pop出3,左边的1要pop出并push到右边的栈,最后将3push进左边的栈,即 3 1 2 5 4 然后 3 1 2 5 4 3 2 1 5 4 3 2 1 5 4 5 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5 4 3 2 1 5 4 3 2 1 不难理解左边的栈自栈底至栈顶是逐渐递减的。 这个过程和插入排序是一致的。 (2)用C++语言编程 //本程序是将混乱的数列变为递增数列,是我们4个女生讨论的结晶。 (略有省略,为了节约纸张) using namespace std; int a[100]; int n, i; int main () { //输入部分 cout请输入要输入车厢的个数,按回车结束endl; cin n; cout请输入你所需要的数字endl; for(i = 0; i n; ++i) cin a[i]; //排序部分。 stackint s; for(i = 0; i n; ++i){ int cur = a[i]; while(!s.empty() s.top() cur){ a[i--] = s.top(); s.pop(); //若输入当前数据大于栈顶元素,则栈顶元素出栈,直到有小于他或者空 } //在不知不觉中,我们将两个栈进行了多次交换。 s.push(cur); } //输出部分。 for(i = 0; i n; ++i){ cout s.top() ; s.pop(); } return 0; } 截图如下: 这是有重复数字的… 【实验心得】 运用栈可以对无序的数列进行排序。 最初我们选用老师所说得比较复杂的方法,可是我们发现那种方法需要很多个栈(n/2),浪费空间,但是那种方法很容易懂。这是我们费劲力气才找到的方法,来之不易。

文档评论(0)

chenchena + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档