一、用两个栈来实现队列的功能
一开始我的思路是:当存取时向一个栈中进行Push操作,当取时将存入数据的栈进行Pop操作,然后放入第二个栈中,将最后一个取出,然后再放回原来的栈。
这是考官说要我改进我的思想,因为我的操作浪费时间,来回的在两个栈进行数据操作:这是你就很好想到改进,呢就是当将压栈数据放到第二个栈之后,没必要在放回去,直接取第二个栈就可以了,存还是存第一个栈内。当从第二个栈进行读取时,若第二个栈的数据没有了,就可以从第一个栈内在取数据放到第二个栈。
二、不借用第三变量交换数据
例如在实现冒泡排序,选择排序时都会借用第三变量来进行两个数据的交换。当真正考察本题时我们可以使用:1)相加减法:
A=7;B=3;
A=A+B;//A等于10,B等于3
B=A-B;//B等于7
A=A-B;//A等于3
2)使用的是异或运算
如A=7:转化成二进制位111;
B=3:转化为二进制位:011;
A=A^B:为100;
B=A^B;为100^011结果为111故为7
A=A^B为100^111结果为011故为3
当然在网上还有一种乘除和加减差不多,不多乘除当有一个为0时是不成立的。
三、数值移位运算:
2<<3 将转化为二进制位:0000 0010 左移后为:0001 0000 故值为:16
-2>>3 将转化为二进制为:因为负数,故绝对值的二进制码为:0000 0010 反码为:1111 1101 加一:1111 1110
然后再右移三位为:1111 1111 然后再减一为:1111 1110 然后再取反为:0000 0001 故最后值为:-1
分享到:
相关推荐
栈实现 队列实现 双栈实现队列 双队列实现栈 栈实现O(n)求当前栈最大值 http://blog.csdn.net/ssuchange/article/details/17398007
根据栈和队列的抽象数据类型的定义,按要求实现一个栈或一个队列。 要求: 1、 实现一个共享栈 2、 实现一个链栈 3、 实现一个循环队列 4、 实现一个链队列
栈和队列考试题 复习 栈和队列考试题 复习栈和队列考试题 复习
队列实现栈栈实现队列.md
C++实现用栈实现队列的功能
1、熟练掌握栈和队列的基本操作在两种存储结构上的实现。 2、会用栈和队列解决简单的实际问题。 二、实验内容 题目:试写一个算法,判断依次读入的一个以@为结束符的字符序列,是否为回文。所谓“回文“是指正向读...
设计一个算法,用一个栈s将-一个队列Q逆置: (1)要求采用顺序栈和循环队列来实现。 (2)要求采用链栈和链队列来实现。
数据结构栈和队列的课程指导上几实验代码 相抵部分
实验三 栈和队列 3.1实验目的: (1) 熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现; (2) 熟悉队列的特点(先进先出)及队列的基本操作...
教学PPT数据结构 第三章 栈与队列 数据结构 第三章 栈与队列 数据结构 第三章 栈与队列 数据结构 第三章 栈与队列
用链表实现栈和队列的操作,使链表操作更加成熟,熟练栈和队列的机制
数据结构 第3章 栈和队列(课后习题程序实现).rar 数据结构 第3章 栈和队列(课后习题程序实现).rar 数据结构 第3章 栈和队列(课后习题程序实现).rar 数据结构 第3章 栈和队列(课后习题程序实现).rar
基于c语言数据结构中栈和队列思想的简单停车场管理系统,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车...
python用栈实现队列,简单明了易于进一步思考和总结发散思维。
用C实现的栈与队列,可以加载使用。详见博文http://blog.csdn.net/pirateleo/article/details/7574598 共包含5个文件
设采用多个栈来模拟队列,即只有进栈push和出栈pop操作,请写出进队和出队的算法,并分析算法的时间复杂度
编写程序,建立容量为n(建议n=8)的循环队列,完成以下程序功能。输入字符#,执行一次出队操作,...要求采用队头/队尾间隔至少一个空闲元素的方法来实现循环队列;空队执行出队操作及队满执行入队操作需显示提示信息。
C++语言实现带小数的任意进制转换,使用了数据结构中的栈和队列,在VC++6.0上编译运行通过。对于学习C++和数据结构有一定的参考意义!
两个栈 实现一个队列
数据结构中的栈、链式队列、树的实现代码