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; }
数据结构:顺序栈
最新推荐文章于 2023-10-19 21:37:31 发布
本文介绍了如何使用C语言实现顺序栈数据结构,包括头文件(seqstack.h)的定义,函数实现(seqstack.cpp)的详细步骤,以及测试文件(test.cpp)的验证过程。
摘要由CSDN通过智能技术生成