I think we implement stack using linked list not vice versa.

1 vote

2

linked list is a DS in which we can add and delete anywhere.

In stack we can delete and insert only at top.(Stack is specialized version of linked list) (we can also make it using array)

So if we want to make a linked list using stack we will need more than 1 stack otherwise how can we insert in middle using only 1 stack.

If 2 or more stacks are there then it might be possible.

In stack we can delete and insert only at top.(Stack is specialized version of linked list) (we can also make it using array)

So if we want to make a linked list using stack we will need more than 1 stack otherwise how can we insert in middle using only 1 stack.

If 2 or more stacks are there then it might be possible.

0

yes, right.

Stack is already created with LL.

Then how that push and pop operation will use for insert and delete operation in LL??

Stack is already created with LL.

Then how that push and pop operation will use for insert and delete operation in LL??

1

@srestha why so ?

we will make stacks using array i.e. arrays will follow all the properties of stack and then we just have to manipulate these stacks such that they behave like linked list.

when we will give a single operation like insert

then multiple operation will run in these stacks to mimic the behaviour of linked list.

0

Then simplfy of this question is like this

Create a LL, where each element of LL is a stack :)

@Arjun Sir

Why do we put so much effort, rather just create a LL will solve purpose :)

1

we have stack 1,S1 and stack 2,S2

stack 1 and stack 2 is empty.

To create a linked list simply push n items in Stack 1.

So stack S1 has nth element at top and 1st element at bottom.

To insert at kth position

1. we remove top n-k elements from stack S1 and put them in S2. S2 top has kth element and bottom has the nth element.

2. then insert the new element in S1.

3. for all elements of S2. pop S2 and push them in S1.

Now S2 is empty and S1 has n+1 elements.

To delete at kth position

1. same as step 1 of insert

2. delete the top element of stack2

3. same as step 3 of insert.

stack 1 and stack 2 is empty.

To create a linked list simply push n items in Stack 1.

So stack S1 has nth element at top and 1st element at bottom.

To insert at kth position

1. we remove top n-k elements from stack S1 and put them in S2. S2 top has kth element and bottom has the nth element.

2. then insert the new element in S1.

3. for all elements of S2. pop S2 and push them in S1.

Now S2 is empty and S1 has n+1 elements.

To delete at kth position

1. same as step 1 of insert

2. delete the top element of stack2

3. same as step 3 of insert.

0 votes

Stacks are Abstract Data types which can be created using Linked-List or arrays depending on our need. If we want to create a LinkedList using stack, we can do it like suppose we pop ,the top element from the stack, create a node using malloc and then insert it at the front of the list, maintaining a head of the linked list and it will be updated every time we pop one element from the stack.