Java棧和C語言的棧都是一種數據結構,它們能夠存儲一系列數據,并且支持相關的操作,如進棧(push)、出棧(pop)等。在下面的代碼示例中,我們將分別介紹Java棧和C語言的棧是如何實現的。
// Java 棧的實現 import java.util.Stack; public class JavaStackExample { public static void main(String[] args) { Stack stack = new Stack(); stack.push("Java"); stack.push("Python"); stack.push("C++"); System.out.println("Stack elements: " + stack); System.out.println("Top element: " + stack.peek()); stack.pop(); System.out.println("After pop operation, stack elements: " + stack); } }
上面的例子中,我們使用Java提供的Stack類實現了一個棧,向其內部插入了三個元素,并且通過peek和pop方法從棧中獲取了一個元素,在每個操作執行后,我們都會打印出棧的狀態。
// C語言 棧的實現 #include#include #define MAX_SIZE 5 int top = -1; int stack[MAX_SIZE]; void push(int data) { if(top< MAX_SIZE - 1) { stack[++top] = data; } else { printf("Stack Overflow\n"); } } int pop() { if(top == -1) { printf("Stack Underflow\n"); return -1; } else { return stack[top--]; } } int main() { push(1); push(2); push(3); printf("Stack elements: "); for(int i = 0; i<= top; i++) { printf("%d ", stack[i]); } printf("\n"); printf("Top element: %d\n", stack[top]); pop(); printf("After pop operation, stack elements: "); for(int i = 0; i<= top; i++) { printf("%d ", stack[i]); } printf("\n"); return 0; }
上面的例子展示了C語言棧的實現方法,其中我們使用了一個普通的int類型數組,并且手動管理了棧的隊首位置,通過借助數組下標,實現了push和pop的操作,同樣我們也在每次操作之后打印出了棧的狀態。