美文网首页
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用线性表中的数组来实现 栈的 结构 遇到

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

  • 关于栈的基础知识介绍

    一、存储结构 栈是一种线性结构:先进后出,可用数组与链表两种方式来实现。 1.数组栈 用数组来实现栈(此处用int...

  • 数组

    数组 数组如何实现随机访问 数组是一种线性数据结构,用连续的存储空间存储相同类型数据 线性表:数组、链表、队列、栈...

  • 数组

    数组如何实现随机访问 数组是一种线性数据结构,用连续的存储空间存储相同类型数据。 线性表:数组、链表、队列、栈 ;...

  • 栈和队列的前端代码实现

    栈和队列都属于线性表数据结构,所以可以利用数组类型来完成代码实现 1、栈数据结构的特点:先进后出,后进先出,进出栈...

  • 栈和队列

    目录 1、引言2、栈3、队列 引言 栈和队列都是动态集合,可以理解为线性表或线性表实现的数据结构。它可以由数组实现...

  • 数据结构与算法(五,栈和栈的应用,递归思想)

    栈 栈是只在尾部做添加和删除的线性表 栈的顺序结构方式 栈的顺序存储结构是使用数组实现的,Stack继承了Vect...

  • 数据结构与算法(四)栈

    什么是栈 栈是一种操作受限的线性表.基本特性是先进后出,后进先出. 栈的实现 栈可以用数组来实现叫做顺序栈,也可以...

  • 【总结】数据结构和算法

    数据结构 数组 概念:用一组连续的内存空间来存储一组具有相同类型的数据;线性表:数组、链表、队列、栈等;非线性表:...

  • 2 线性表

    线性表的概念 定义和特征 抽象数据类型 存储结构 运算分类 顺序表 实现 多维数组 链表 实现 实现方法比较 栈 ...

网友评论

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

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