4.4 栈实现及其应用

这篇具有很好参考价值的文章主要介绍了4.4 栈实现及其应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 顺序栈

创建栈:

清空栈:

判断栈是否空 :

进栈 :

出栈 :

取栈顶元素:


栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈)

允许进行操作的一端称为“栈顶”

另一固定端称为“栈底”

当栈中没有元素时称为“空栈”。特点 :后进先出(LIFO)。

4.4 栈实现及其应用

 顺序栈

 它是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top(相对指针)完成各种操作。

  typedef  int  data_t ; /*定义栈中数据元素的数据类型*/

typedef struct {

            data_t  *data ;     /*用指针指向栈的存储空间*/

            int  maxlen;    /*当前栈的最大元素个数*/

            int  top ;     /*指示栈顶位置(数组下标)的变量*/

  } sqstack;         /*顺序栈类型定义*/ 

创建栈:

sqstack *stack_create (int len) {

sqstack *ss; ss = (seqstack *)malloc(sizeof(sqstack));

ss->data = (data_t *)malloc(sizeof(data_t) * len);

ss->top = -1;

ss->maxlen = len;

     return ss;

}文章来源地址https://www.toymoban.com/news/detail-439385.html

清空栈:

stack _clear(sqstack  *s) {

     s-> top = -1 ;

}

判断栈是否空 :

int  stack_empty (sqstack  *s) {

    return   (s->top ==  -1  ?  1 : 0);

}

进栈 :

void  stack_push (sqstack  *s ,  data_t  x) {

    if (s->top = = N - 1){

         printf ( “overflow !\n”) ;

           return  ;

    }     else  {

        s->top ++  ;

        s->data[s->top] = x ;

     }      return  ;

}

出栈 :

datatype  stack_pop(sqstack *s) {

 s->top--;

    return  (s->data[s->top+1]);

}

     取栈顶元素:

datatype  get_top(sqstack  *s) {

      return (s->data[s->top]);

}

到了这里,关于4.4 栈实现及其应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包