Skip to main content


Quick reference

Worst Case

stack stores items in a last-in, first-out (LIFO) order.

Picture a pile of dirty plates in your sink. As you add more plates, you bury the old ones further down. When you take a plate off the top to wash it, you're taking the last plate you put in. "Last in, first out."


  • Fast operations. All stack operations take O(1) time.


  • The call stack is a stack that tracks function calls in a program. When a function returns, which function do we "pop" back to? The last one that "pushed" a function call.
  • Depth-first search uses a stack (sometimes the call stack) to keep track of which nodes to visit next.
  • String parsing—stacks turn out to be useful for several types of string parsing.


You can implement a stack with either a linked list or a dynamic array—they both work pretty well:

Stack PushStack Pop
Linked Listsinsert at headremove at head
Dynamic Arraysappendremove last element

Java comes with a built in stack implementation , but it's better to use Deques instead.

The stack implementation has a few big drawbacks: it doesn't have an interface and it extends the Vector class, which has thread synchronization overhead.


Popular posts from this blog

A simple calculator for adding and subtracting in c++

A simple calculator for adding and subtracting in c++ In this post, I write a code about very simple calculator in c++. Actually it is the problem in If you're not familiar with this website then you can go below link: Input is in this form :                                               x+5=2  or 1+x=4  or  1+4=x In the output we give the value of x. It has very simple solution. That's why i give there only code and when you read this code line-by-line you easily understand it     :) Solution: #include <iostream> #include <string> using namespace std ; int main (){ string statement ; cin >> statement ; int last_number = 0 ; if (statement [ statement.length()- 1 ] == '0' || statement [ statement.length()- 1 ] == '1' || statement [ statement.length()- 1 ] == '2' || statement [ s

SQL - Part 1

                                            SQL tutorial from scratch -- Part 1                                                             Introduction Before going deep dive into in SQL I want to explain the main purpose of DB(database). Suppose we have large amount of data (for example it would be the students in the same class), and we want to create some website which is give us all information about them. How we do it. Of course using database.Maybe you ask yourself questions: "I can store them in file or array". Yes you is exactly right. But imagine you have large amount of data and if you store them in file or array your program/website will work very hard. Now let's visualize databases: As we can see it is one of the basic db type which is store title, release_year, length and replacement_cost. Don't worry about DB if you don't understand them very well. Our next paragraphs will explain it more accurately and also I try to add some impor

Representing Graphs in C++

                           How to represent graphs in C++ Todays one of the most important topic is Graph theory. Maybe someone of you wouldn't be familiar with it, is yes then go to  there go to programming books and there you can find Kenneth Rosen Discrete Mathematics books just download it and 10, 11th paragraphs about graphs. You must read for understanding today's lesson. Sometimes in my website cause some errors (it is developing) if yes then contact me  my_email  and I will send you the book. Now let's speak about graphs: Graphs are used everywhere:  in websites, in social media apps (such a Facebook), telephone calls and so on. If in future you want to write great applications you must know about graphs and also implement them. The basic terms of graphs are vertices(plural) and vertex(single), degree of graph deg(G), neighborhood of graphs (adjacency of graphs), simple graphs, loops and so on. For better unde