“Реализовать стек с использованием связанного списка Java” Ответ

Java Stack с использованием связанного списка

class StackUsingLinkedlist {
              private class Node {
                int data;
                Node next;
              }
            
              Node top;
            
              StackUsingLinkedlist() {
                this.top = null;
              }

            public void push(int data) {
              Node newNode = new Node();
              newNode.data = data;
              newNode.next = top;
              top = newNode;
            }
            
            public boolean isEmpty() {
              return top == null;
            }
            
            public int peek() {
              if (!isEmpty()) {
                return top.data;
              } else {
                System.out.println("Stack is empty");
                return -1;
              }
            }
            
            public void pop() {
              if (top == null) {
                System.out.print("\nStack empty");
                return;
              }
              top = top.next;
            }
            
            public void display() {
              if (top == null) {
                System.out.print("\nStack empty");
                exit(1);
              } else {
                Node node = top;
                while (node != null) {
                  System.out.printf("%d->", node.data);
                  node = node.next;
                }
              }
            }
Magnificent Monkey Adi

Реализация стека через связанный список

// C++ program to Implement a stack
//using singly linked list
#include <bits/stdc++.h>
using namespace std;
 
// Declare linked list node
 
struct Node
{
    int data;
    struct Node* link;
};
 
struct Node* top;
 
// Utility function to add an element
// data in the stack insert at the beginning
void push(int data)
{
     
    // Create new node temp and allocate memory
    struct Node* temp;
    temp = new Node();
 
    // Check if stack (heap) is full.
    // Then inserting an element would
    // lead to stack overflow
    if (!temp)
    {
        cout << "\nHeap Overflow";
        exit(1);
    }
 
    // Initialize data into temp data field
    temp->data = data;
 
    // Put top pointer reference into temp link
    temp->link = top;
 
    // Make temp as top of Stack
    top = temp;
}
 
// Utility function to check if
// the stack is empty or not
int isEmpty()
{
    return top == NULL;
}
 
// Utility function to return top element in a stack
int peek()
{
     
    // Check for empty stack
    if (!isEmpty())
        return top->data;
    else
        exit(1);
}
 
// Utility function to pop top
// element from the stack
void pop()
{
    struct Node* temp;
 
    // Check for stack underflow
    if (top == NULL)
    {
        cout << "\nStack Underflow" << endl;
        exit(1);
    }
    else
    {
         
        // Top assign into temp
        temp = top;
 
        // Assign second node to top
        top = top->link;
 
        // Destroy connection between
        // first and second
        temp->link = NULL;
 
        // Release memory of top node
        free(temp);
    }
}
 
// Function to print all the
// elements of the stack
void display()
{
    struct Node* temp;
 
    // Check for stack underflow
    if (top == NULL)
    {
        cout << "\nStack Underflow";
        exit(1);
    }
    else
    {
        temp = top;
        while (temp != NULL)
        {
 
            // Print node data
            cout << temp->data << "-> ";
 
            // Assign temp link to temp
            temp = temp->link;
        }
    }
}
 
// Driver Code
int main()
{
     
    // Push the elements of stack
    push(11);
    push(22);
    push(33);
    push(44);
 
    // Display stack elements
    display();
 
    // Print top element of stack
    cout << "\nTop element is "
         << peek() << endl;
 
    // Delete top elements of stack
    pop();
    pop();
 
    // Display stack elements
    display();
 
    // Print top element of stack
    cout << "\nTop element is "
         << peek() << endl;
          
    return 0;
}
 
// This code is contributed by Striver
hawaee

Реализовать стек с использованием связанного списка Java

public class LinkedListStack {
    private Node head; // the first node
 
    // nest class to define linkedlist node
    private class Node {
        int value;
        Node next;
    }
 
    public LinkedListStack() {
        head = null;
    }
 
    // Remove value from the beginning of the list for demonstrating behaviour of stack
    public int pop() throws LinkedListEmptyException {
        if (head == null) {
            throw new LinkedListEmptyException();
        }
        int value = head.value;
        head = head.next;
        return value;
    }
 
    // Add value to the beginning of the list for demonstrating behaviour of stack
    public void push(int value) {
        Node oldHead = head;
        head = new Node();
        head.value = value;
        head.next = oldHead;
    }
 
    public static void main(String args[]) 
    {
        LinkedListStack lls=new LinkedListStack();
        lls.push(20);
        lls.push(50);
        lls.push(80);
        lls.push(40);
        lls.push(60);
        lls.push(75);
        System.out.println("Element removed from LinkedList: "+lls.pop());
        System.out.println("Element removed from LinkedList: "+lls.pop());
        lls.push(10);
        System.out.println("Element removed from LinkedList: "+lls.pop());
        printList(lls.head);
    }
    public static void printList(Node head) {
        Node temp = head;
        while (temp != null) {
            System.out.format("%d ", temp.value);
            temp = temp.next;
        }
        System.out.println();
    }
}
 
/**
 * 
 * Exception to indicate that LinkedList is empty.
 */
 
class LinkedListEmptyException extends RuntimeException {
    private static final long serialVersionUID = 1L;
 
    public LinkedListEmptyException() {
        super();
    }
 
    public LinkedListEmptyException(String message) {
        super(message);
    }
}
Wrong Willet

Ответы похожие на “Реализовать стек с использованием связанного списка Java”

Вопросы похожие на “Реализовать стек с использованием связанного списка Java”

Больше похожих ответов на “Реализовать стек с использованием связанного списка Java” по Java

Смотреть популярные ответы по языку

Смотреть другие языки программирования