#include<stdio.h>java
#include<stdlib.h>node
typedef int elementType;this
typedef struct Link_Stack{code
Link_Stack *next; elementType data;
} Stack;element
Stack * init(){it
Stack *stack = (Stack *)malloc(sizeof(Stack));io
if(stack!=NULL){class
printf("棧初始化成功\n"); return stack;
} printf("空間滿了\n");next
return NULL;static
}
bool isEmpty(Stack *stack){
if(stack->next==NULL) return true; return false;
}
void push(Stack *stack,elementType x){
Stack *p = (Stack *)malloc(sizeof(Stack)); if(p!=NULL){ p->data=x; p->next=stack->next; stack->next=p; printf("插入成功\n"); } return;
}
void pop(Stack *stack){
if(stack->next==NULL) { printf("棧已經空了\n"); return ; } Stack *p=stack->next; stack->next=p->next; printf("出棧:%d\n",p->data); free(p);
}
int main(){
Stack *st=init(); printf("%d\n",isEmpty(st)); for(int i=0;i<10;i++) push(st,i+1); for(int i=0;i<10;i++) pop(st); return 0;
}
java實現
public class Node_stack <E> {
Node_stack next=null;
E data;
Node_stack(E data){
this.data=data; }
}
public class Link_stack <E>{
private Node_stack<E> node=null;
public Link_stack(){
}
//判斷是否爲空
public boolean isEmpty(){
return node ==null;
}
//進棧
public void push(E data){ Node_stack<E> newstack=new Node_stack<>(data); newstack.next=node; node=newstack; System.out.println("插入成功"); } //出棧 public void pop(){ if(this.isEmpty()){ System.out.println("棧已經空了"); return; } E data=node.data; node=node.next; System.out.println(data); }
public static void main(String[] args) {
Link_stack stack = new Link_stack(); System.out.println(stack.isEmpty()); for (int i=0;i<4;i++) stack.push(i+1); System.out.println(stack.isEmpty()); for (int i=0;i<5;i++) stack.pop(); }
}