A stack is a Last In First Out (LIFO) data structure. A common use of stacks is to store subroutine arguments and return addresses.
Questions tagged [stacks]
120 questions
28
votes
1 answer
Is there a 'string stack' data structure that supports these string operations?
I'm looking for a data structure that stores a set of strings over a character set $\Sigma$, capable of performing the following operations. We denote $\mathcal{D}(S)$ as the data structure storing the set of strings $S$.
Add-Prefix-Set on…
Alex ten Brink
- 9,206
- 3
- 36
- 63
26
votes
1 answer
Is a stack overflow detected by hardware or software?
Is it the task of the software (operating system) to detect stack overflows or is a stack overflow detected in hardware, causing an exception in the CPU?
gilianzz
- 581
- 6
- 16
18
votes
2 answers
Is it possible for a stack-based programming language to be concurrent?
I have been reading about stack-based programming languages, such as FORTH and Cat, and it seems that given their nature, they can only execute one action at a time regardless of their paradigm (FORTH is imperative whereas Cat is functional).
An…
Joan Vene
- 195
- 1
- 8
16
votes
7 answers
How to implement two stacks in one array?
I want to begin by saying that this is NOT a homework question. I am reading Introduction to Algorithms - the famous CLRS text to become a better programmer. I am trying to solve the problems and exercises given in the book by myself.
I am trying…
Suyash Gupta
- 161
- 1
- 1
- 3
9
votes
2 answers
Is a stack machine with a forward read iterator Turing complete?
It is well known that a machine with a single stack as only unlimited storage is not Turing complete, if it can only read from the top of the stack. I want a machine which is (slightly) more powerful than a stack machine, but still not Turing…
Thomas Klimpel
- 5,440
- 29
- 69
9
votes
1 answer
How to detect stack order?
We take the sequence of integers from $1$ to $n$, and we push them onto a stack one by one in order. Between each push, we can choose to pop any number of items from the stack (from 0 to the current stack size).
Every time we pop a value from the…
Timeless
- 805
- 1
- 9
- 16
8
votes
4 answers
Stack Permutation Algorithm
I was recently designing a Forth stack machine. I have an atomic instruction which rotates the top N elements.
For example if the top of the stack is on the left, then say the N=3 rotate instruction would do the following:
A B C D -> C A B D
A few…
Guillermo Phillips
- 302
- 1
- 11
7
votes
2 answers
Why operating system needs interrupt stack, if it has process control block?
I'm reading about an operating system but some concept confuses me.
What doesn't confuse me:
When an interrupt or system call or processor exception occurs, it happens when user mode tries to switch to the kernel mode, the operating system uses…
helsereet
- 71
- 2
7
votes
1 answer
Is a LBA with stack more powerful than a LBA without?
Even so a linear bounded automata (LBA) is strictly more powerful than a pushdown automata (PDA), adding a stack to a LBA might make it more powerful.
A LBA with stack should not be Turing complete, because its halting problem should be decidable.…
Thomas Klimpel
- 5,440
- 29
- 69
6
votes
0 answers
How to sort a queue using a temporary stack?
Suppose we have N natural numbers in a queue. ex queue = [3, 14, 1, 20] and an empty stack
We are allowed to make only two actions:
Action "x": Dequeue an element from the queue and push it to the stack.
Action "o": Pop an element from the stack…
entropyfever
- 179
- 7
6
votes
1 answer
Generate all permutations of 1 to n with i stacks
Assume we have i stacks. the possible actions are:
push to first stack form input
pop from stack i and push it to stack i+1
pop from last stack to output
If we have numbers of 1 to n starting from 1 in the input, what is the minimum value of i…
Mehdi
- 161
- 5
5
votes
2 answers
Data Structure for Representing a Math Expression
I'm looking to improve my object-oriented design skills and I came across a problem which asked to design classes to represent a mathematical expression such as (a + b) * ( c - d / e) in memory so that it could be evaluated (by adding an evaluate…
Shobit
- 185
- 1
- 6
4
votes
0 answers
What is the algorithm to determine valid push and pop sequences for stack when repetition of numbers are allowed?
Unlike traditional problems dealing with push and pop sequences of distinct numbers, I would like to know the procedure to determine the validity of the stack operations for sequences of non-distinct numbers.
For example,
Push : 1 2 1 2 2 2 1
Pop :…
user2585578
- 141
- 1
4
votes
1 answer
Why is a sequence of n Push, Pop, Multipop operations O(n²)?
From "Introduction to Algorithms" by Cormen, Leiserson, Rivest, Stein, Third Edition, page 453:
Let us analyze a sequence of $n$ Push, Pop, Multipop operations on an initially empty stack. The worst-case cost of a Multipop operation in the sequence…
Kevin Preston
- 143
- 1
- 3
4
votes
1 answer
Computing with number of stack items
For stack-oriented programming language, how many top-most items of the stack are needed to be accessible in order to be Turing complete?
Is it enough to be able to access just the top-most item? Two items? Three? Any item?
In the case of Forth, is…
Ecir Hana
- 270
- 2
- 7