标题:求助一段和栈相关的代码问题
只看楼主
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));  //出队并进栈
}

这段代码的含义是将队列逆序吗?
搜索更多相关主题的帖子:  代码 队列 while 非空 
2017-11-17 21:52
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:0 

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

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

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

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

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

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

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

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


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-11-30 23:33
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
以下是引用九转星河在2017-11-30 23:33:11的发言:

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

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

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

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

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

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

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




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

剑栈风樯各苦辛,别时冰雪到时春
2017-12-10 00:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482597-1-1.html




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

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