Build Stack Data Structure Implementation using Linked List

View: 313    Dowload: 0   Comment: 0   Post by: hanhga   Category: Php&mySql   Fields: Other

Write a program to implement a stack using linked list. In my last post, I have explained the implementation of a stack data structure using an array. In this post, I’ll explain how to implement a stack  data structure using linked list.

Stack Data Structure

Let’s revise some of the terminologies of a stack.

i) Stack worked on LIFO (Last In First Out) Principle. It means insertion and deletion are allowed only at one end. The element which added last must be the first element to be removed.

ii) In Stack, Insertion operation is called Push and deletion operation is called Pop . During push operation if memory is not available then it’s termed as StackOverflow. During pop operation if a stack is empty, then it’s called StackUnderflow

Program to Implement Stack using Linked List

I assumed you have a basic understand of linked list. If you are not familiar with linked list data structure then check my previous posts on linked list.

#include <stdio.h>
#include <stdlib.h>
 
/* Create a node which contains data and next pointer link */
 
struct node{
 
 int data;
 struct node *link;
};
 
struct node *head;
 
void push(int data){
 
        /* Allocate memory */
 
 struct node *newNode = (struct node*)malloc(sizeof(struct node));
 
 /* If memory is full */
 
 if (newNode == NULL) {
 
   printf("Stack Overflow \n");
   return;
 
 }
 
 /* Create new node */
 
 newNode->data = data;
 newNode->link = head;
 
 head = newNode;
 
}
 
void pop() {
 
 /* If there is no element to pop */
 
 if(head == NULL) {
 
   printf("Stack Underflow");
   exit(0);
 
 }
 
 struct node *p = head;
 
         int data;
 data = p->data;
 
 /* Points to next link */
 
 head = head->link;
 free(p);
 
 printf("Popped element is %d\n",data);
}
 
main() {
 
       /*Initially head is assigned null. */
 
 head = NULL;
 
 push(4);
 push(6);
 pop();
 push(8);
 pop();
 
}

Output

Popped element is 6
Popped element is 8

Explanation

In this program first, we pushed element 4 and 6 in a stack. Stack worked on LIFO(Last In First Out) principle. Then a pop method is called, so 6 is popped out. Again we push element 8 and then we called a pop method which popped 8 from a stack.

Build Stack Data Structure Implementation using Linked List

Write a program to implement a stack using linked list. In my last post, I have explained the implementation of a stack data structure using an array. In this post, I’ll explain how to implement a stack data structure using linked list.

Posted on 05-10-2016 

Comment:

To comment you must be logged in members.

Files with category

  • SimpleXML is a PHP extension that allows us to easily manipulate and get XML data

    SimpleXML is a PHP extension that allows us to easily manipulate and get XML data

    View: 267    Download: 0   Comment: 0

    Category: Php&mySql     Fields: none

    SimpleXML provides an easy way of getting an element's name, attributes and textual content if you know the XML document's structure or layout. SimpleXML turns an XML document into a data structure you can iterate through like a collection of arrays...

  • How to use the PHP download file script? Class Download PHP

    How to use the PHP download file script? Class Download PHP

    View: 181    Download: 1   Comment: 0

    Category: Php&mySql     Fields: Other

    This is my favorite PHP download script. I’ve used a different more simple method until a client wanted to be able to allow their site visitors to download a large file from a password protected directory. The PHP script works on Apache web servers...

  • Installing OCI8 & PHP 7.2 on RHEL or CentOS 6

    Installing OCI8 & PHP 7.2 on RHEL or CentOS 6

    View: 315    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    You’ll need to stop Apache (web server) using the following command. In any Linux commands I show in this article, it presumes you aren’t logged in as the root user, so you will need to use sudo to issue privileged commands.

  • PHP source code: get content of google search

    PHP source code: get content of google search

    View: 264    Download: 2   Comment: 0

    Category: Php&mySql     Fields: Other

    How to get the results of google search and display on your website. This PHP code can do that. Refer to the following code.

  • PHP as a Scripting Language for C#

    PHP as a Scripting Language for C#

    View: 194    Download: 0   Comment: 0

    Category: Php&mySql     Fields: none

    When creating .NET applications (including desktop and web applications), it may be useful to allow extending the application using some scripting language. The users of the application can write simple scripts to configure the application, modify...

  • How to Picking the Brains of Your Customers with Microsoft’s Text Analytics

    How to Picking the Brains of Your Customers with Microsoft’s Text Analytics

    View: 4281    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    With the explosion of machine learning services in recent years, it has become easier than ever for developers to create “smart apps”. In this article, I’ll introduce you to Microsoft’s offering for providing machine-learning capabilities to apps.

  • How to MySqli Tutorial PHP MySqli Extension

    How to MySqli Tutorial PHP MySqli Extension

    View: 588    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    PHP provides three api to connect mysql Database.

  • Make Laravel Artisan Commands

    Make Laravel Artisan Commands

    View: 540    Download: 0   Comment: 0

    Category: Php&mySql     Fields: Other

    Artisan is the command line tool used in Laravel framework. It offers a bunch of useful command that can help you develop application quickly. Apart from Artisan available commands, you can create your own custom commands to improve your workflow.

 
File suggestion for you
File top downloads
Codetitle - library source code to share, download the file to the community
Copyright © 2018. All rights reserved. codetitle Develope by Vinagon .Ltd