Cracking the coding interview--Q3
2013-07-10 01:03
274 查看
Chapter 3 | Stacks and Queues
3.1 Describe how you could use a single array to implement three stacks.
分段呗- -
3.2 How would you design a stack which, in addition to push and pop, also has a function min which returns the minimum element? Push, pop and min should all operate
in O(1) time.
一倍冗余数据,分段可以减少冗余数据
3.3 Imagine a (literal) stack of plates. If the stack gets too high, it might topple. Therefore, in real life, we would likely start a new stack when the previous
stack exceeds some threshold. Implement a data structure SetOfStacks that mimics this. SetOfStacks should be composed of several stacks, and should create a new stack once the previous one exceeds capacity. SetOfStacks.push() and SetOfStacks.pop() should behave
identically to a single stack (that is, pop() should return the same values as it would if there were just a single stack). FOLLOW UP Implement a function popAt(int index) which performs a pop operation on a specific sub-stack.
直接malloc个新的 何难。。需要考虑边界条件,中间子栈是空的。
3.4 In the classic problem of the Towers of Hanoi, you have 3 rods and N disks of different sizes which can slide onto any tower. The puzzle starts with disks sorted
in ascending order of size from top to bottom (e.g., each disk sits on top of an even larger one). You have the following constraints: (A) Only one disk can be moved at a time. (B) A disk is slid off the top of one rod onto the next rod. © A disk can only
be placed on top of a larger disk. Write a program to move the disks from the first rod to the last using Stacks.
http://blog.csdn.net/kkkkkxiaofei/article/details/8333644
3.5 Implement a MyQueue class which implements a queue using two stacks.
如原解,似乎效率很低
3.6 Write a program to sort a stack in ascending order. You should not make any assump- tions about how the stack is implemented. The following are the only functions
that should be used to write this program: push | pop | peek | isEmpty.
额外结构排序。插入排序
3.1 Describe how you could use a single array to implement three stacks.
分段呗- -
3.2 How would you design a stack which, in addition to push and pop, also has a function min which returns the minimum element? Push, pop and min should all operate
in O(1) time.
一倍冗余数据,分段可以减少冗余数据
3.3 Imagine a (literal) stack of plates. If the stack gets too high, it might topple. Therefore, in real life, we would likely start a new stack when the previous
stack exceeds some threshold. Implement a data structure SetOfStacks that mimics this. SetOfStacks should be composed of several stacks, and should create a new stack once the previous one exceeds capacity. SetOfStacks.push() and SetOfStacks.pop() should behave
identically to a single stack (that is, pop() should return the same values as it would if there were just a single stack). FOLLOW UP Implement a function popAt(int index) which performs a pop operation on a specific sub-stack.
直接malloc个新的 何难。。需要考虑边界条件,中间子栈是空的。
3.4 In the classic problem of the Towers of Hanoi, you have 3 rods and N disks of different sizes which can slide onto any tower. The puzzle starts with disks sorted
in ascending order of size from top to bottom (e.g., each disk sits on top of an even larger one). You have the following constraints: (A) Only one disk can be moved at a time. (B) A disk is slid off the top of one rod onto the next rod. © A disk can only
be placed on top of a larger disk. Write a program to move the disks from the first rod to the last using Stacks.
http://blog.csdn.net/kkkkkxiaofei/article/details/8333644
3.5 Implement a MyQueue class which implements a queue using two stacks.
如原解,似乎效率很低
3.6 Write a program to sort a stack in ascending order. You should not make any assump- tions about how the stack is implemented. The following are the only functions
that should be used to write this program: push | pop | peek | isEmpty.
额外结构排序。插入排序
相关文章推荐
- Cracking the coding interview--Q1.1
- Cracking the coding interview--Q9.7
- Cracking the coding interview--Q1.8
- Cracking the coding interview--Q2.5
- cracking the coding interview problem solution 1.8
- Cracking the coding interview--Q4.2
- [Cracking the Coding Interview] Chapter 3 - Stacks and Queues
- Cracking the coding interview 150 要点记录(一)--Array and List
- Cracking the coding interview--问题与解答
- Cracking the coding interview--Q1.7
- Cracking the coding interview--Q2
- Cracking the coding interview--Q4
- Cracking the coding interview--Q1.5
- Cracking the Coding Interview Q1.3
- 渣基础:比照Hawstein学Cracking the coding interview(1)
- 《Cracking the Coding Interview》——第1章:数组和字符串——题目4
- 《Cracking the Coding Interview》——第3章:栈和队列——题目2
- Cracking the Coding Interview Q2.6
- 渣基础:比照Hawstein学Cracking the coding interview(2)
- Cracking the coding interview--Q2.4