A Linked-List is basically a series of Nodes. Each Node contains two things: The contents, and the pointer to the next Node in the Linked-List. So you can traverse the Linked-List by following the "next" pointers in each Node, a bit like following road directions from city to city.
A stack is an abstract data type where you have two operations: "push" and "pop". Pushing means to put an item in the stack, Popping means to get the first element of the stack. When you push an item onto a stack, you put the item at the top: so its like cutting in line to the very front. The last one in is now first, and thus, the first one out. Another helpful image is a "stack" of trays at a cafeteria -- you can only get the tray from the top of the stack, or put a tray on top of the stack. The very first tray in the stack is actually the one at the very bottom, and thus, the last one to be used. "First in, Last Out."
A stack deals with what comes first/last, while a Linked-List describes how data is stored. A stack needs to store data, so a stack can be implemented as a Linked-List.
Chat with our AI personalities
Stacks don't have to be implemented using linked lists. A stack can also be implemented using an array which makes better use of memory. Linked lists have the advantage in that they can grow and shrink dynamically which can often improve stack performance. To achieve similar performance with an array you must allocate more memory than is required each time the array grows, typically by doubling the size of the allocation.
The stack is a memory structure where your programs can store data. The stack pointer is the variable that "points" to the current location of the top of the stack.
The top of a stack implemented as a linked list is the head of the list. All insertions and extractions occur at the head thus a forward list (singly-linked list) is sufficient to implement a stack.
LIFO
Stacks are often implemented using the same node structure as a linked list.
yes pagal
A linked list is a data structure that allows bi-directional traversal with constant-time access to both the head and the tail of the list. Elements may be pushed and popped from anywhere in the list. A stack is a structure where elements are pushed and popped only at the head of the stack. A stack is typically implemented using an array (either fixed-length or variable-length) where elements are pushed and popped from the end of the array (you need to keep track of where the last-used element is). However, a stack can also be implemented as a singly-linked list, pushing and popping at the head of the list. Stacks generally do not allow traversal of the elements.