栈的代码实现之数组方案
栈的代码实现之数组方案
宁哥实战课堂 发表于1个月前
栈的代码实现之数组方案
  • 发表于 1个月前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云实验室 1小时搭建人工智能应用,让技术更容易入门 免费体验 >>>   

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

其实现原理是从“一端”操作,导致先存储的数据最后被取出。有栈顶、栈底等因素组成。在《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;

}

测试结果:

栈的代码实现之数组方案

共有 人打赏支持
粉丝 6
博文 49
码字总数 63721
×
宁哥实战课堂
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: