1. 程式人生 > 其它 >鏈棧(c++)

鏈棧(c++)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
typedef int elemtype;

typedef struct StackNode {
    elemtype data;  
    struct StackNode *next;
}StackNode;

typedef struct LinkStack {
    StackNode* top;
    int count;
}LinkStack;

void initstack(LinkStack* L) {
    L
->top = NULL; L->count = 0; } int Push(LinkStack* L, elemtype e) { StackNode* s; s = (StackNode*)malloc(sizeof(StackNode));//分配動態記憶體 s->data = e; s->next = L->top; L->top = s; L->count--; return 0; } int Pop(LinkStack* L, elemtype* e) { if (L->count == 0
) { printf("棧為空!"); return 0; } StackNode* s; s = L->top; L->top = s->next; *e = s->data; L->count--; return 0; } void Show_Linkstruct(LinkStack* L) { StackNode* s; s = L->top; if (L->count == 0) { printf("棧為空!
"); } else { while (L->top!=NULL) { printf("棧元素為:"); printf("%d\n", L->top->data); L->top = L->top->next; } } L->top = s; } int main() { LinkStack L; elemtype m; initstack(&L); Push(&L, 5); Push(&L, 15); Push(&L, 25); Push(&L, 35); Push(&L, 45); Show_Linkstruct(&L); Pop(&L, &m); printf("刪除的元素為:%d\n", m); Show_Linkstruct(&L); }