美文网首页
2019-05-08用线性表中的数组来实现 栈的 结构 遇到

2019-05-08用线性表中的数组来实现 栈的 结构 遇到

作者: 常人 | 来源:发表于2019-05-08 12:13 被阅读0次

    用线性表中的数组来实现 栈的 结构 遇到了很大的困难:伪代码不能死记硬背 必须加以理解

    下面是基本的框架:

    #include<stdio.h>//程序中用到标准库函数 (如输入输出语句)
    #include <stdbool.h>//false ture直接调用的标准库
    #define LENGTH 20//#  预处理的信息  在编译之前就需要处理的信息
    #define STACKINCERMENT 20
    
    /*
      实在写不出 先把需要的骨架的逻辑写出来  再 网上搜索  纠结是没有用的
      分别用线性表中的数组 链表 实现一个栈的结构
      1、获取元素
      2、删除
      3、更新
      4、插入
      5、清空
      6、遍历
      7、栈的元素个数
    */
    typedef struct {
    //  int *arr;
        int length;
        int *top;
        int *base;
    }Stack;
    
    //初始化栈 分配空间
    InitStack(Stack &S){
        S.base = (int *)malloc(LENGTH * sizeof(int));
        if (!S.arr){
            exit("OVERFLOW");
        }
        S.top = S.base;
        S.length = LENGTH;
        return true;
    }
    /*
    GetTop(Stack S,int n){
        if (!S.top){
            n = S.top;
        }
    
    }
    */
    //获取栈顶的元素
     GetTop(Stack S,int &S){
        if (S.top == S.base){
            return false;
        }
        e = (int *)malloc(sizeof(int));
        e = S.top;
    }
     //栈中插入元素
     Push(Stack &S,int e){
         /*
         插入元素 数组实现的话 插在最尾端
         size +1 ;(在Stack中  使用的是size)
         top = top+1;
         */
         //需要判断 栈 是不是满了(合法性)
         if ((S.top - S.base) == S.size) {
             S.base = (int *)ralloc(S.base, (S.stacksize + STACKINCERMENT)*sizeof(int);
             if (!S.base) return false;//分配空间失败
             //top指针的位置 是由 stackszie(栈保存了多少个元素) 进行描述的
             S.top = S.base + S.stacksize;
             S.stacksize += STACKINCERMENT;
         }
         *S.top++ = e;  // top既然是指针 为什么这么直接表示 指针不需要移动的吗????
         return true;
    }
     //删除元素
     Pop(Stack &S, int & e){
         //合法性检查 检查栈 是不是为空
         if (S.top == S.base){
             return false;
         }
         e = *S.top;
         *S.top--;
         return true;
     }
    
     /*伪代码 看着难受 感觉不符合语法规则 随意乱写  ?????????????*/
    
    

    相关文章

      网友评论

          本文标题:2019-05-08用线性表中的数组来实现 栈的 结构 遇到

          本文链接:https://www.haomeiwen.com/subject/ourmoqtx.html