zoukankan      html  css  js  c++  java
  • 限定性线性表,将线性表的插入和删除操作限制为仅在表的一端进行。
    允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。 
    特点:后进先出 (LIFO)
     
    //链栈定义
    typedef struct node
    {
        StackElementType data;
        struct node *next;
    } LinkStackNode;
     
    //初始化一个空的链栈
    LinkStack InitStack ()
    {
         LinkStack top;
         top = (LinkStack)malloc(sizeof(LinkStackNode));
         top->next=NULL;
         return top;
    }
     
    //判断栈是否空?空则返回1,否则返回0
    int IsEmpty ( LinkStack top )
    {
         return top->next ==0;
    }
     
    //进栈 — 将数据元素x压入栈top中
    int Push (LinkStack top, StackElementType x)
    {
         LinkStackNode *temp;
         temp = (LinkStackNode *)malloc(sizeof(LinkStackNode ));
         if( temp == NULL ) //申请空间失败
         return FALSE;
         temp->data=x;
         temp->next=top->next;
         top->next=temp;
         return TRUE;
    }
     
    //出栈,删除栈顶元素并存入x所指的存储空间
    int Pop( LinkStack top, StackElementType *x )
    {
        LinkStackNode *temp;
        temp = top->next;
        if( temp==NULL )//栈为空
           return FALSE;
        top->next = temp->next;
        *x=temp->data;
        free(temp);
        return TRUE;
    }
     
    //读栈顶元素
    //栈顶元素存入x所指空间中,但未删除
    int GetTop ( LinkStack top, StackElementType *x )
    {
         if(top->next ==NULL) //栈空
         return FALSE;
         else{
             *x=top->next->data;
             return TRUE;
               } 
    }
     
     
  • 相关阅读:
    feign.RetryableException: Read timed out
    字段重复性校验
    时间的问题总结
    Maven使用mvn命令生成一个spring mvc的web项目
    Mac OS安装brew
    Docker部署Web应用到Tomcat
    Docker安装使用Oracle 11g
    Python 修改AD密码
    Let's Encrypt 证书 wget 报错
    dedecms获取指定栏目下的文章数量
  • 原文地址:https://www.cnblogs.com/lxzw/p/12890873.html
Copyright © 2011-2022 走看看