数据结构伪代码的实现(栈)
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct Node
{
int data;
struct Node *pNext;
}NODE,*pNODE;//定义栈的每一个元素类型和指针
typedef struct Stack
{
pNODE pTop;//栈顶
pNODE pBottom;//栈底
}STACK,*pSTACK;//定义一个栈和栈的指针 栈顶和栈底指向结点
void init(pSTACK );
void push(pSTACK ,int );
void traverse(pSTACK );
bool pop(pSTACK ,int *);
void clear(pSTACK );
bool is_empty(pSTACK );
int main(void)
{
STACK s;//定义一个栈
int val;
init(&s);//初始化
//入栈操作
push(&s,1);
push(&s,33);
push(&s,9);
push(&s,7);
push(&s,8);
//遍历
traverse(&s);
//出栈操作
if(pop(&s,&val))
{
printf("出栈成功!出栈的数字是:%d\n",val);
}else printf("出栈失败!");
traverse(&s);
//清空
clear(&s);
if(is_empty(&s))
printf("栈为空!\n");
return 0;
}
void init(pSTACK