使用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语言实现栈的资料请关注脚本之家其它相关文章!

相关文章

  • Qt+Quick实现图片演示器的开发

    Qt+Quick实现图片演示器的开发

    这篇文章主要为大家详细介绍了Qt如何利用Quick实现图片演示器的开发,文中的示例代码讲解详细,对我们学习Qt有一定的帮助,需要的可以参考一下
    2023-01-01
  • 详解C语言内核字符串转换方法

    详解C语言内核字符串转换方法

    在内核开发模式下,初始化字符串也需要调用专用的初始化函数,如下分别初始化ANSI和UNCODE字符串,本文我们就来看看代码是如何实现的
    2022-09-09
  • C++基于OpenCV实现手势识别的源码

    C++基于OpenCV实现手势识别的源码

    这篇文章主要介绍了C++基于OpenCV手势识别的实现源码,这里用到背景减法模型知识,具体实例代码跟随小编一起看看吧
    2021-09-09
  • EasyC++模板重载

    EasyC++模板重载

    这篇文章主要介绍了C++模板重载,重载的模板的函数特征,也就是入参的数量和类型必须有所不同,下面我们讲举例说明此内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12
  • C语言实现对文件进行操作的示例详解

    C语言实现对文件进行操作的示例详解

    这篇文章主要为大家详细介绍了C语言实现对文件进行操作的相关知识,文中的示例代码讲解详细,对我们学习C语言有一定的帮助,需要的可以参考一下
    2023-04-04
  • C++单例模式应用实例

    C++单例模式应用实例

    这篇文章主要介绍了C++单例模式应用实例,详细讲述了单例模式的原理与结构,及相关的打印机应用实例,需要的朋友可以参考下
    2014-10-10
  • Python扩展C/C++库的方法(C转换为Python)

    Python扩展C/C++库的方法(C转换为Python)

    这篇文章主要介绍了Python扩展C/C++库的方法(C转换为Python),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • C++ Qt实现一个解除文件占用小工具

    C++ Qt实现一个解除文件占用小工具

    这篇文章主要为大家详细介绍了如何利用C++ Qt实现一个解除文件占用小工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • C++中结构体的类型定义和初始化以及变量引用

    C++中结构体的类型定义和初始化以及变量引用

    这篇文章主要介绍了C++中结构体的类型定义和初始化以及变量引用,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • C语言特殊符号的补充理解

    C语言特殊符号的补充理解

    这篇文章主要为大家介绍了C语言特殊符号的使用补充理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-02-02

最新评论