stacks using linked list
stacks using linked list
The major problem with the stack implemented using an array is, it works only for a fixed number of
data values. That means the amount of data must be specified at the beginning of the implementation
itself. Stack implemented using an array is not suitable, when we don't know the size of data which we
are going to use. A stack data structure can be implemented by using a linked list data structure. The
stack implemented using linked list can work for an unlimited number of values. That means, stack
implemented using linked list works for the variable size of data. So, there is no need to fix the size at
the beginning of the implementation. The Stack implemented using linked list can organize as many
data values as we want.
In linked list implementation of a stack, every new element is inserted as 'top' element. That means
every newly inserted element is pointed by 'top'. Whenever we want to remove an element from the
stack, simply remove the node which is pointed by 'top' by moving 'top' to its previous node in the list.
The next field of the first element must be always NULL.
Example
In the above example, the last inserted node is 99 and the first inserted node is 25. The order of
elements inserted is 25, 32,50 and 99.
• Step 1 - Include all the header files which are used in the program. And declare all the user
defined functions.
• Step 2 - Define a 'Node' structure with two members data and next.
• Step 3 - Define a Node pointer 'top' and set it to NULL.
• Step 4 - Implement the main method by displaying Menu with list of operations and make
suitable function calls in the main method.
newnode->data=ele;
if(top==NULL)
top=newnode;
newnode->next=NULL;
else
newnode->next=top;
top=newnode;
}
pop() - Deleting an Element from a Stack
We can use the following steps to delete a node from the stack...
void pop()
if(top==NULL)
else
temp=top;
top=top->next;
free(temp);
void display()
if(top==NULL)
else
temp=top;
while(temp!=NULL)
printf("%d->",temp->data);
temp=temp->next;
}
}