博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈的代码实现之数组方案
阅读量:6830 次
发布时间:2019-06-26

本文共 1226 字,大约阅读时间需要 4 分钟。

hot3.png

栈是一种具有从宏观上来看是“先进后出”功能特点的数据结构。可以由数组或者链表来实现。

其实现原理是从“一端”操作,导致先存储的数据最后被取出。有栈顶、栈底等因素组成。在《C语言,好爽》第7版(2017年)第76集:栈的代码实现之数组方案,中对栈的内存实现原理进行了详解。这里只从宏观上来理解,以及相关代码如何实现。

其结构体类型为:

#define N 30

struct _stack

{

int top;

int data[N];

};

typedef struct _stack mystack;

对栈的操作通常有初始化、判断栈空、栈满,入栈,操作,清空等操作。这里分别实现:

栈的代码实现之数组方案

栈的代码实现之数组方案

栈的代码实现之数组方案

栈的代码实现之数组方案

栈的代码实现之数组方案

栈的代码实现之数组方案

栈的代码实现之数组方案

栈的代码实现之数组方案

调用代码:

int main() {

mystack ms;

init(&ms);

int flag = 0;

int value = 0;

value = 0;

flag = push(&ms, value);

if (flag)

{

printf("%d 入栈成功", value);

}

else

{

printf("%d 入栈失败", value);

}

value = 1;

flag = push(&ms, value);

if (flag)

{

printf("%d 入栈成功", value);

}

else

{

printf("%d 入栈失败", value);

}

value = 2;

flag = push(&ms, value);

if (flag)

{

printf("%d 入栈成功", value);

}

else

{

printf("%d 入栈失败", value);

}

show(&ms);

//弹出栈

int output_value = 0;

int output_flag = 0;

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf("出栈成功,出栈的数据为:%d", output_value);

}

else

{

printf("出栈失败");

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf("出栈成功,出栈的数据为:%d", output_value);

}

else

{

printf("出栈失败");

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf("出栈成功,出栈的数据为:%d", output_value);

}

else

{

printf("出栈失败");

}

show(&ms);

system("pause");

return 0;

}

测试结果:

栈的代码实现之数组方案

转载于:https://my.oschina.net/u/3412071/blog/1532361

你可能感兴趣的文章
weak_ptr 的 operator== 操作问题
查看>>
IOS写文件
查看>>
mysql小数数据类型
查看>>
js判断input输入保留正整数和两位小数实现方法
查看>>
redisson学习示例
查看>>
升级到 PHP 7.0
查看>>
ITSM--IT服务管理注意细则
查看>>
JAVA中使用代码创建多数据源,并实现动态切换(一)
查看>>
create instance 生成创建虚拟机从nova到调用libvirt流程(pycharm debug):
查看>>
python第二阶段第二天,函数的作用域
查看>>
浅谈MySQL Sharding分片技术
查看>>
php安装
查看>>
linux之ls命令
查看>>
json框架
查看>>
apache启动报错(98)Address already in use: make_sock: could not bind to address [::]:80
查看>>
我的友情链接
查看>>
shorewall 企业防火墙的完美实现
查看>>
nginx反向代理负载均衡
查看>>
CentOS 7中没有ifconfig命令,而且不能发现eth0
查看>>
GCC内嵌汇编语法
查看>>