顺序栈 ——初始化、入栈、出栈
编译环境:VS2019
直接上代码吧!
#define _CRT_SECURE_NO_WARNINGS //防止出现C4996错误
#include
#include
#define Maxsize 100typedef struct Snode
{int data[Maxsize];int top;
}Seqstack;
//栈空: top = -1
//栈满: top = Maxsize - 1;
//栈中总元素个数: top + 1
//初始化栈
Seqstack* Init_Stack()
{Seqstack* s;//思考:此处为什么要用malloc开辟一段新的内存空间?//因为s是指向结构体的指针,但现在连结构体都没有,所以要malloc一个和结构体大小相同的空间,使s指向它s = (Seqstack*)malloc(sizeof(Seqstack));s->top = -1;return s;
}//入栈
void Push_Stack(Seqstack* s, int e)
{if (s->top == Maxsize - 1){printf("FULL\n");}else{s->top++;s->data[s->top] = e;printf("PUSH!\n");}
}//出栈
int Pop_Stack(Seqstack* s)
{int x;if (s->top == -1){printf("EMPTY!\n");return 0; //表示函数正常终止}else{x = s->data[s->top];printf("%d\n", x);s->top--;return 1; //表示函数非正常终止}
}//取栈顶元素
//此处注意取栈顶元素和出栈的区别
void Top_Pop(Seqstack* s)
{if (s->top == -1){printf("NULL\n");return 1;}else{printf("%d\n", s->data[s->top]);}
}
int main()
{Seqstack* s;s = Init_Stack();Push_Stack(s, 3);//令3入栈Push_Stack(s, 4);//令4入栈Top_Pop(s); // 取栈顶元素Pop_Stack(s);//出栈Pop_Stack(s);//出栈Pop_Stack(s);//出栈return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
