使用C语言顺序表数据结构实现栈的代码示例
更新时间:2023年09月22日 09:11:53 作者:gnip
这篇文章主要给大家介绍了如何使用C语言顺序表数据结构实现栈,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的参考价值,需要的朋友可以参考下
代码
头文件、声明等
#include<stdio.h> #include<assert.h> #include<stdlib.h> #define true 1 #define false 0 #define bool char #define MAX_SIZE 10 //链表数据类型 typedef int ElementType; typedef struct Stack { ElementType data[MAX_SIZE]; int top;//栈顶指针(数组下标) } Stack; bool initStack(Stack* S); bool push(Stack* S, ElementType data); bool pop(Stack* S); bool getTop(Stack* S, ElementType* x);
main函数
int main() { Stack S; initStack(&S); push(&S, 1); push(&S, 2); push(&S, 3); ElementType x; pop(&S); getTop(&S, &x); printf("%d", x); return 0; }
初始化
bool initStack(Stack* S) { for (int i = 0; i < MAX_SIZE; i++) { S->data[i] = 0; } S->top = -1; return true; }
判断为空
bool isEmpty(Stack* S) { if (S->top == -1) { return true; } return false; }
入栈
bool push(Stack* S, ElementType data) { if (S->top == MAX_SIZE - 1) { return false; } S->data[++(S->top)] = data; return true; }
出栈
bool pop(Stack* S) { if (S->top == -1) { return false; } S->data[S->top] = 0; S->top--; return true; }
获取栈顶元素
bool getTop(Stack* S, ElementType *x) { if (S->top == -1) { return false; } *x = S->data[S->top]; return true; }
以上就是使用C语言顺序表数据结构实现栈的代码示例的详细内容,更多关于C语言实现栈的资料请关注脚本之家其它相关文章!
最新评论