1.头文件(seqstack.h)
#pragma once //不定长顺序栈:当栈满后能够扩容.利用顺序表保存数据 #define INITSIZE 10 typedef int ElemType; typedef struct { ElemType* base;//指向存放数据的指针 ElemType* top;//栈顶指针,指向当前可以存放数据的地址 int stacksize;//栈总容量 }SqStack,*PSqStack;//sizeof(SqStack)==12; //栈的初始化 void InitStack(PSqStack ps); //入栈 bool Push(PSqStack ps, ElemType val); //判空 bool IsEmpty(PSqStack ps); //获取栈顶元素的值,但不删除栈顶元素 //rtval:是输出参数 bool GetTop(PSqStack ps, int* rtval); //获取栈顶元素的值,且删除 bool Pop(PSqStack ps, int* rtval); //销毁 void Destroy(PSqStack ps);
2.函数实现文件(seqstack.cpp)
#include<stdio.h> #include<stdlib.h> #include<assert.h> #include"seqstack.h" //栈的初始化 void InitStack(PSqStack ps) { assert(ps != NULL); if (ps == NULL) return; ps->base = (ElemType*)malloc(INITSIZE * sizeof(ElemType)); ps->top = ps->base; ps->stacksize = INITSIZE; }
数据结构:顺序栈
最新推荐文章于 2022-04-19 12:40:08 发布