首页 > 作文

C语言栈之顺序栈

更新时间:2023-04-04 23:46:13 阅读: 评论:0

目录
定义1.建立空栈2.进栈3.出栈4.读栈顶元素5.遍历栈总结

定义2017年终总结

用顺序存储方式实现的栈称为顺序栈,顺序栈对应于顺序表。

设栈中的数据元素的类型是整型,用一个足够长的一维数组s来存放元素,数组的最大容量为stack_intsize。同时假设栈顶指针top。(在以下的程序中,top不是指向当前的栈顶元素,而是指向下一次将要进栈的元素的存储位置)

顺序栈可以描述如下:

#define stack_intsize 50 /*分配栈的最大存储空间*/#define datatype int /*定义栈中数据元素的类型*/datatype s[stack_intsize];/*用来存放栈中数据元素的内存空间*/int top;/*定义栈顶指针*/

可以用结构体数组来实现顺序栈:

#define stack_intsize 50#define datatype inttypedef struct{    datatype s[stack_intsize];    int top;} stack;stack *st;/*指针st用来引用一个顺序栈*/

栈顶指针动态地反映了栈中元素的变化情况,top=0时,表示空栈top=1时,表示已经有一个元素进栈进栈时,栈顶指针top上移,top加1top=stack_intsize,表示栈满出栈时,栈顶指针top下移,top减1

1.建立空栈

stack *initstack(){    stack *s;    s = (stack *)malloc(sizeof(sta泠然善也ck));    s->top = 0;    return s;}

2.进栈

void push(stack *st, datatype x){    if (st->top >= stack_intsize)        printf("栈已满,不能入栈!\n");/*若栈满则不能进栈,输出出错信息*/    el    {        st->s[st->top] = x;/*元素x进栈*/        st->top++;/*栈顶指针top加1*/    }}

3.出栈

void pop(stack *st){    if (st->top == 0)        printf("栈空,不能出栈!\n");/*若栈空则不能出栈,且输出栈空的信息*/    el/*栈非空*/    {        st->top--;/*top减1,元素出栈*/    }}

心声作文600字

4.读栈顶元素大火歌词

datatype readtop(stack *st){    datatype x;    if (st->top == 0)    {        printf("栈中无元素");        return (0);    }    /*若栈空则返回0*/    el    {        x = st->s[st->top-1];/*取栈顶元素*/        return (x);/*返回x即栈顶元素的值*/    }}

5.遍历栈

结合元素出栈算法和读取栈顶元素算法,使用循环,当st->top=0时结束循环,即可遍历栈

void showstack(stack *st){    while (刘诗诗 韩国st->top > 0)    {        st->top--;        printf("%d", st->s[st->top]);    }}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!

本文发布于:2023-04-04 23:46:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/94692f3f9f207fb793d52b5adde10113.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C语言栈之顺序栈.doc

本文 PDF 下载地址:C语言栈之顺序栈.pdf

标签:元素   指针   顺序   遍历
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图