首页 > 代码库 > C数组模拟堆栈
C数组模拟堆栈
#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXSIZE 8 typedef int dataType; typedef struct Stack { dataType date[MAXSIZE]; int top; }Stack; void initStack(Stack *s)//初始化堆栈函数 { s->top=-1; //初始化top指向堆栈的最底部 memset(s->date,0,sizeof(dataType)*MAXSIZE);//将堆栈空间初始化为0(可省略该步骤) } void push(Stack *s,int e) { if (s->top==MAXSIZE-1) { return; } s->top++; s->date[s->top]=e; } void pop(Stack *s,int *e) { if (s->top==-1) { return ; } *e=s->date[s->top];//通过传址的方式获取堆栈中最顶层的数据 s->top--; } int main(void) { Stack myTest; int temp; initStack(&myTest); printf("Push Order:\n"); for (int i=0; i<8; i++) { printf("%d ",i); push(&myTest, i); } printf("\n"); printf("Pop Order:\n"); for (int i=0; i<8; i++) { pop(&myTest, &temp); printf("%d ",temp); } printf("\n"); return 0; }
本文出自 “网络学习总结” 博客,请务必保留此出处http://8947509.blog.51cto.com/8937509/1550922
C数组模拟堆栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。