`
tubaluer
  • 浏览: 1443369 次
文章分类
社区版块
存档分类
最新评论
  • sblig: c / c++ 是不一样的都会输出 100
    j = j++

重学数据结构004——栈的基本操作及实现(数组实现)

 
阅读更多

上文提到过栈以及栈的基本操作。上文中是基于链表做的实现。但是这种方法会出现大量的malloc()和free()操作,这种开销是非常昂贵的。

另外一种实现方式是基于数组的实现。这种实现方式需要预先制定一个栈的大小,此外还需要一个Top来记录栈顶元素下一个位置的数组索引值。如下图所示:

有的教材将Top指向栈顶元素,也就是上图中X所在的数组单元。我们这里不这么认为。

这种情况下栈的数据结构定义如下:

主要操作如下:




分享到:
评论

相关推荐

    C++数据结构——栈.pdf

    C++数据结构——栈 C++数据结构 数据结构——栈 栈 最近计划再复习⼀遍数据结构,看到⼀篇博客:。 1、栈(Stack)是⼀种线性存储结构,它具有如下特点: (1)栈中的数据元素遵守"先进后出"(First In Last Out)的原则...

    《数据结构——用C语言描述》-蔡明志

    《数据结构——用C语言描述》以C语言为程序设计语言,采用系列式的叙述方式,引导读者循序渐进地掌握数组、链接表、栈和队列、树与森林、图和堆等不同的数据结构,并系统地介绍了查找和排序的各种实现方法。...

    数据结构C语言实现系列[2]——栈

    struct stack{ elemType *stack; /* 存储栈元素的数组指针 */ int top;

    迷宫寻路数据结构栈实现

    int Pop(Stack &S,SElemType &e){//若栈不空删除栈,顶元素用e返回 if(S.top==S.base) return 0; e=*--S.top; return 1; } int DestroyStack(Stack &S){//销毁栈S, free(S.base); S.top=S.base; return 1; }...

    数据结构--数据结构的组织方法.pdf

    常见的数据结构:栈、队列、数组、链表、树、图、字典树(⾼效树形结构)、散列表(哈希表) Java常⽤数据结构(图解): 图⽚源⾃于: 1、栈和队列: 2、栈(stack):先进后出,删除与加⼊均在栈顶操作 栈也称为...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    4.3 数据输入输出的概念及在 C 语言中的实现 54 4.4 字符数据的输入输出 54 4.4.1 putchar 函数(字符输出函数) 54 4.4.2 getchar函数(键盘输入函数) 55 4.5 格式输入与输出 55 4.5.1 printf 函数(格式输出函数...

    Java数据结构和算法

    (2)数据结构之数组 (3)数据结构之栈 (4)数据结构之队列 (5)数据结构之链表 (6)数据结构之二叉树 (7)数据结构之霍夫曼树 (8)数据结构之红黑树(一)——基础分析 (9)数据结构之红黑树(二)...

    算法:算法C语言实现 第1-4部分 基础知识、数据结构、排序及搜索

    算法:C语言实现 (第1-4部分)基础知识、数据结构、排序及搜索(原书第3版) 本书是Sedgewick彻底修订和重写的C算法系列的第一本。全书分为四部分,共16章。第一部分“基础知识”(第1—2章)介绍基本算法分析原理。...

    《数据结构》实验报告

    《数据结构——学习使用C语言》实验报告,共有五个实验报告。 实验一:线性表 实验二:栈、队列的实现及应用 实验三:串及数组的实验 实验四: 二叉树的基本操作 实验五:查找和排序

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    4.3 数据输入输出的概念及在 C 语言中的实现 54 4.4 字符数据的输入输出 54 4.4.1 putchar 函数(字符输出函数) 54 4.4.2 getchar函数(键盘输入函数) 55 4.5 格式输入与输出 55 4.5.1 printf 函数(格式输出函数...

    大数据——数据结构.pdf

    ⼤数据——数据结构 ⼀、堆与栈 1.定义 栈内存: 栈内存⾸先是⼀⽚内存区域,存储的都是局部变量,凡是定义在⽅法中的都是局部变量(⽅法外的是全局变量),for循环内部定义 的也是局部变量,是先加载函数才能进⾏...

    《数据结构—用C语言描述》

    数据结构课件PPT《数据结构—用C语言描述》 概论·线性表·栈和队列·串·多维数组和广义表·树·图·排序·查找·文件

    JavaScript数组的栈方法与队列方法详解

    数组(Array)和对象(Object)应该是JavaScript中使用最多也是最频繁的两种类型了,Array提供了很多常用的方法:栈方法、队列方法、重排序方法、操作方法、位置方法、迭代方法等等。 1、Array的栈方法 栈是一种LIFO...

    数据结构算法

    第二天 平衡二叉树 6天通吃树结构—— 第一天 二叉查找树 算法速成系列(15)算法系列15天速成——第十五天 图【下】(大结局) 算法系列15天速成——第十四天 图【上】 算法系列15天速成——第十三天 树操作【下】 ...

    软件工程之专题九:数据结构知识

    数据结构上的基本操作: ◆插入操作 ◆删除操作 ◆更新操作 ◆查找操作 ◆排序操作 数据结构是指数据对象及相互关系和构造方法,一个数据结构B形式上可以用一个二元组表示为B=(A,R)。其中,A是数据结构中的数据...

    数据结构—使用C语言(第4版)【朱战立-电子教案】

    介绍了各种典型的数据结构,以及递归、查找和排序的方法 很好的学习资料===========================================》 【第1章】 绪论 数据结构的基本概念 抽象数据类型和软件构造方法 算法和算法的时间复杂度 ...

    严蔚敏 数据结构(C语言版) 代码 23490 书中算法

    2.2.2 顺序表中基本操作的实现 20 2.3 线性表的链式表示和实现 24 2.3.1 单链表的定义和表示 24 2.3.2 单链表基本操作的实现 26 2.3.3 循环链表 31 2.3.4 双向链表 32 2.4 线性表的应用 34 2.4.1 ...

    数据结构习题答案(全部算法)严蔚敏版

    1.1 数据结构的基本概念和术语 1.1.1 引言 1.1.2 数据结构有关概念及术语 1.1.3 数据结构和抽象数据类型(ADT) 1.2 算法描述与分析 1.2.1 什么是算法 1.2.2 算法描述工具——C语言 1.2.3 算法分析技术初步...

Global site tag (gtag.js) - Google Analytics