栈的顺序存储实现
首先要认识到viod* p[2];
表示的是两个创建一个包含两个元素的数组,每个元素是void* 类型。即
void * p[2];
//和这种写法相同
void *p0;
void *p1;
采用份文件的形式使用VS2013 C语言 编写
1 栈的顺序存储头文件SeqStack.h
#ifndef SEQSTACK_H
#define SEQSTACK_H
#include <stdio.h>
#include <stdlib.h>
//先定义栈的最大存储元素个数
#define MAX_SIZE 1024
//宏定义 真1 假0
#define SEQSTACK_TURE 1
#define SEQSTACK_FALSE 0
//用数组来模拟顺序存储
typedef struct SEQSTACK
{
void* data[MAX_SIZE];// 定义一个元素个数为MAX_SIZE的数组,每个元素时void* 类型
int size; //用于记录栈中目前以存储的元素个数
}SeqStack;
//初始化
SeqStack * InIt_SeqStack();
//入栈
void Push_SeqStack(SeqStack * stack, void * data);
//返回栈顶元素
void * Top_SeqStack(SeqStack * stack);
//出栈
void Pop_SeqStack(SeqStack * stack);
//判断是否为空
int IsEmpty(SeqStack *stack);
//返回栈中当前元素个数
int Size_SeqStack(SeqStack * stack);
//清空栈
void Clear_SeqStack(SeqStack * stack);
//销毁
void Free_SeqStack(SeqStack * stack);
#endif
2 实现这些函数功能SeqStack.c
#include "SeqStack.h"
//初始化
SeqStack * InIt_SeqStack