| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
雷速体育发帖软件开发QQ118000023C语言培训|一对一辅导|零基础学编程LightningChart 快速先进的.Net图表控件
共有 417 人关注过本帖
标题:求助一段和栈相关的代码问题
只看楼主 收藏
moyi516
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-11-17
  问题点数:0  回复次数:3   
求助一段和栈相关的代码问题
void demo (Stack &S,int e){
Queue Q;        //Q为队列
InitQueue (Q);  //初始化队列
while(!StackEmpty (S))  //当栈非空
{
   PP=Pops ;          //出栈,栈顶元素赋值给pp
   if (PP!=e) EnQueue(Q,pp); //入队
}
while(!QueueEmpty(Q))  //当队列非空
  Push(S,DeQueue(Q));  //出队并进栈
}

这段代码的含义是将队列逆序吗?
2017-11-17 21:52
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:164
帖 子:6765
专家分:42085
注 册:2010-12-16
  得分:0 

我行我乐
我的博客:
http://blog.yuccn. net
2017-11-30 13:51
九转星河
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:长长久久
等 级:版主
威 望:44
帖 子:4898
专家分:13909
注 册:2016-10-22
  得分:0 
嗯,我顺便跟了一下,准确来说应该是逆栈而不是队列~

其实我好奇这个栈和队列是链式结构还是数组结构(可能性偏向于链式结构,因为没有判断上溢,但既然栈元素原来是有限的并且没有溢出所以这样也有可能是数组结构)~

首先嘛,为啥初始化不调用指针,这样能传参效率比较高啊并且这是个初学者起码知道的常识嘛~

话说,数组结构的值域直接memcpy放进新数组里面再逆序放回还快嘛~省得调用进栈出栈进队出队函数函数什么的(囧,调用4个函数来实现也是醉了)~

如果是链式结构,那我恭喜~这样做其实要频繁free和malloc的,其实链表逆序(如果有头节点另外处理)就可以了~

嗯,个人理解这样高质量的怎么样也不会弄这种代码吧~应该是简单给学生看看方便使用的~

PS:PP和pp还有Pops不知道有没有敲错~那个是全局变量?~嗯,这代码,还是看看算了~

[此贴子已经被作者于2017-11-30 23:42编辑过]


[code]/*~个性签名:弟弟的妹妹叫妹妹,弟弟的姐姐叫姐姐~ 2018-06-18更~*/[/code]
2017-11-30 23:33
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:93
帖 子:1555
专家分:6806
注 册:2015-3-19
  得分:0 
以下是引用九转星河在2017-11-30 23:33:11的发言:

嗯,我顺便跟了一下,准确来说应该是逆栈而不是队列~

其实我好奇这个栈和队列是链式结构还是数组结构(可能性偏向于链式结构,因为没有判断上溢,但既然栈元素原来是有限的并且没有溢出所以这样也有可能是数组结构)~

首先嘛,为啥初始化不调用指针,这样能传参效率比较高啊并且这是个初学者起码知道的常识嘛~

话说,数组结构的值域直接memcpy放进新数组里面再逆序放回还快嘛~省得调用进栈出栈进队出队函数函数什么的(囧,调用4个函数来实现也是醉了)~

如果是链式结构,那我恭喜~这样做其实要频繁free和malloc的,其实链表逆序(如果有头节点另外处理)就可以了~

嗯,个人理解这样高质量的怎么样也不会弄这种代码吧~应该是简单给学生看看方便使用的~

PS:PP和pp还有Pops不知道有没有敲错~那个是全局变量?~嗯,这代码,还是看看算了~




厉害了版主, 楼主写的应该是伪代码, 你写的有点高大上了呢

不过是爱情,可以走很久
2017-12-10 00:56







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049323 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved