首页 > 代码库 > 顺序栈
顺序栈
顺序栈,即栈的顺序存储结构,是利用一组连续的地址单元依次存放自栈底到栈顶的数据元素。同时为栈结构设置栈底指针base与栈顶指针top。若base=NULL,则表明栈结构不存在。top指针初值指向栈底,top=base可用作栈为空的标记。新插入元素后栈顶指针top的值加1,删除元素时减1。即非空栈的栈顶指针top始终在栈顶元素的下一个位置上。
//------------------------栈的顺序实现----------------------// #include <stdio.h> #include <stdlib.h> #define STACK_INIT_SIZE 8 #define STACKINCREMENT 5 #define Status int #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef struct SElemType { int data; }SElemType; //构造结点 typedef struct { SElemType *base; SElemType *top;//非空栈的栈顶指针始终在栈顶元素的下一位置 int stacksize; }SqStack; // 构造栈 Status IsEmpty(SqStack S) { if(S.top == S.base) return OK; return ERROR; } Status InitStack(SqStack *S) { //构造一个空栈 S->base=(SElemType *)malloc( STACK_INIT_SIZE *sizeof( SElemType)); S->top=S->base; S->stacksize=STACK_INIT_SIZE; return OK; } Status GetTop(SqStack S, SElemType *e) { if( S.top == S.base) return ERROR; e->data=http://www.mamicode.com/(S.top-1)->data;>运行结果:
顺序栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。