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;
               } 
    }
     
     
  • 相关阅读:
    用ProFTPD构建FTP服务器
    Js数组里剔除指定的元素(不是指定的位置)
    JS跨域设置和取Cookie
    ajax test
    js下判断 iframe 是否加载完成的完美方法
    使用div模拟出frameset效果
    js中call与apply用法
    phpstorm 快捷键
    JQuery中 数组与字符串(过滤,排序,拆分,合并)
    基于 Apache 在本地配置多个虚拟主机
  • 原文地址:https://www.cnblogs.com/lxzw/p/12890873.html
Copyright © 2011-2022 走看看