首頁 >後端開發 >C++ >堆疊資料結構|後進先出 (LIFO)

堆疊資料結構|後進先出 (LIFO)

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-23 19:07:02872瀏覽
  1. - 推送(新增元素):將元素加入堆疊頂部。
  2. - Pop(刪除元素):從頂部刪除元素。
  3. - isFull:檢查堆疊是否已達到其限制(在本例中為 10)。
  4. - isEmpty:檢查堆疊是否為空。
  5. - 顯示:顯示堆疊元素。

1.範例:
索引.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Stack | Last In First Out (LIFO) or First in Last out | - By Sudhanshu Gaikwad (FILO)</title>
  </head>
  <body>
    <h3>Stack in Javascript</h3>
    <script>
      let Data = [];

      // Add an element to the array
      function AddEle(Ele) {
        if (isFull()) {
          console.log("Array is Full, Element can't be added!");
        } else {
          console.log("Element Added!");
          Data.push(Ele);
        }
      }

      // Check if the array is full
      function isFull() {
        return Data.length >= 10;
      }

      // Remove an element from the array
      function Remove() {
        if (isEmpty()) {
          console.log("Array is Empty, can't remove element!");
        } else {
          Data.pop();
          console.log("Element Removed!");
        }
      }

      // Check if the array is empty
      function isEmpty() {
        return Data.length === 0;
      }

      // Display the array elements
      function Display() {
        console.log("Updated Array >> ", Data);
      }

      // Example usage
      AddEle(55);
      AddEle(85);
      AddEle(25);
      Remove();
      Display(); // [55, 85]
    </script>
  </body>
</html>

2.範例:
index2.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>What is Stack in JavaScript | By Sudhanshu Gaikwad</title>
    <style>
      * {
        box-sizing: border-box;
      }

      body {
        font-family: "Roboto Condensed", sans-serif;
        background-color: #f4f4f4;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100vh;
      }

      .container {
        background-color: white;
        padding: 20px;
        border-radius: 10px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        max-width: 400px;
        width: 100%;
        margin-bottom: 20px;
      }

      h3 {
        color: #333;
        text-align: center;
        margin-bottom: 20px;
      }

      input {
        padding: 10px;
        width: calc(100% - 20px);
        margin-bottom: 10px;
        border: 1px solid #ccc;
        border-radius: 5px;
      }

      button {
        padding: 10px;
        margin: 10px 0;
        border: none;
        border-radius: 5px;
        background-color: #292f31;
        color: white;
        cursor: pointer;
        width: 100%;
      }

      button:hover {
        background-color: #e9e9ea;
        color: #292f31;
      }

      .message {
        margin-top: 15px;
        color: #333;
        font-size: 16px;
        text-align: center;
      }

      .footer {
        text-align: center;
        margin-top: 20px;
        font-size: 14px;
        color: #555;
      }

      /* Responsive design */
      @media (max-width: 768px) {
        .container {
          padding: 15px;
          max-width: 90%;
        }

        button {
          font-size: 14px;
        }

        input {
          font-size: 14px;
        }
      }
    </style>
  </head>

  <body>
    <div class="container">
      <!-- Title -->
      <h3>Stack in JavaScript</h3>

      <!-- Input section -->
      <input type="text" id="AddEle" placeholder="Enter an element" />

      <!-- Buttons section -->
      <button onclick="AddData()">Add Element</button>
      <button onclick="RemoveEle()">Remove Element</button>
      <button onclick="Display()">Show Array</button>

      <!-- Message sections -->
      <div id="Add" class="message"></div>
      <div id="Remove" class="message"></div>
      <div id="Display" class="message"></div>
    </div>

    <!-- Footer with copyright symbol -->
    <div class="footer">
      &copy; 2024 Sudhanshu Developer | All Rights Reserved
    </div>

    <script>
      let Data = [];

      // Function to add an element to the stack
      function AddData() {
        let NewEle = document.getElementById("AddEle").value;

        if (isFull()) {
          document.getElementById("Add").innerHTML = "Array is full, element cannot be added!";
        } else if (NewEle.trim() === "") {
          document.getElementById("Add").innerHTML = "Please enter a valid element!";
        } else {
          Data.push(NewEle);
          document.getElementById("Add").innerHTML = `Element "${NewEle}" added!`;
          document.getElementById("AddEle").value = ""; 
          console.log("Current Array: ", Data); 
          Display(); 
        }
      }

      function isFull() {
        return Data.length >= 10;
      }

      function RemoveEle() {
        if (isEmpty()) {
          document.getElementById("Remove").innerHTML = "Array is empty!";
        } else {
          let removedElement = Data.pop();
          document.getElementById("Remove").innerHTML = `Element "${removedElement}" removed!`;
          console.log("Current Array: ", Data);
          Display(); 
        }
      }

      function isEmpty() {
        return Data.length === 0;
      }

      function Display() {
        let displayArea = document.getElementById("Display");
        displayArea.innerHTML = ""; 
        if (Data.length === 0) {
          displayArea.innerHTML = "No elements in the Array!";
          console.log("Array is empty.");
        } else {
          for (let i = 0; i < Data.length; i++) {
            displayArea.innerHTML += `Element ${i + 1}: ${Data[i]}<br>`;
          }
          console.log("Displaying Array: ", Data); 
        }
      }
    </script>
  </body>
</html>

輸出:

Stack Data Structure | Last In First Out (LIFO)

帶有使用者輸入的 C 語言堆疊

#include <stdio.h>
#include <stdbool.h>

#define MAX 10 

int Data[MAX];
int top = -1;  

// Function to check if the stack is full
bool isFull() {
    return top >= MAX - 1;
}

// Function to check if the stack is empty
bool isEmpty() {
    return top == -1;
}

// Function to add an element to the stack (Push operation)
void AddEle() {
    int Ele;
    if (isFull()) {
        printf("Array is Full, Element can't be added!\n");
    } else {
        printf("Enter an element to add: ");
        scanf("%d", &Ele); // Read user input
        Data[++top] = Ele; // Increment top and add element
        printf("Element %d Added!\n", Ele);
    }
}

// Function to remove an element from the stack (Pop operation)
void Remove() {
    if (isEmpty()) {
        printf("Array is Empty, can't remove element!\n");
    } else {
        printf("Element %d Removed!\n", Data[top--]); // Remove element and decrement top
    }
}

// Function to display all elements in the stack
void Display() {
    if (isEmpty()) {
        printf("Array is Empty!\n");
    } else {
        printf("Updated Array >> ");
        for (int i = 0; i <= top; i++) {
            printf("%d ", Data[i]);
        }
        printf("\n");
    }
}

int main() {
    int choice;
    do {
        printf("\n1. Add Element\n2. Remove Element\n3. Display Stack\n4. Exit\n");
        printf("Enter your choice: ");
        scanf("%d", &choice); // Read the user's choice

        switch (choice) {
            case 1:
                AddEle();
                break;
            case 2:
                Remove();
                break;
            case 3:
                Display();
                break;
            case 4:
                printf("Exiting...\n");
                break;
            default:
                printf("Invalid choice! Please select a valid option.\n");
        }
    } while (choice != 4);

    return 0;
}

範例輸出:

1. Add Element
2. Remove Element
3. Display Stack
4. Exit
Enter your choice: 1
Enter an element to add: 55
Element 55 Added!

1. Add Element
2. Remove Element
3. Display Stack
4. Exit
Enter your choice: 3
Updated Array >> 55 

1. Add Element
2. Remove Element
3. Display Stack
4. Exit
Enter your choice: 4
Exiting...

以上是堆疊資料結構|後進先出 (LIFO)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn