数据结构(六)栈的顺序存储结构

  一、栈的定义

  1.栈(stack)是限定仅在表尾进行插入和删除操作的线性表。

  2.把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。

  3.栈的插入操作,叫做进栈(push),也称压栈、入栈;栈的删除操作,叫做出栈(pop),也称弹栈。

  4.栈的顺序存储结构:既然栈是线性表的特例,那么栈的顺序存储其实也是线性表顺序存储的简化。数组下标为0的一端作为栈底,定义一个top变量来指示栈顶元素在数组中的位置。

  5.栈的顺序存储结构的C语言代码实现:

  6.栈的顺序存储结构的Java语言代码实现:

原文地址:https://www.cnblogs.com/BigJunOba/p/9183276.html

时间: 2024-10-13 17:44:41

数据结构(六)栈的顺序存储结构的相关文章

数据结构:栈的顺序存储结构及实现

栈的定义和抽象数据类型 栈是限定仅在表尾进行插入和删除操作的线性表.所以说栈也是线性表,栈元素具有线性关系,即前驱后继关系. 其抽象数据类型: ADT 栈(Stack) Data 同线性表,元素具有相同的类型,相邻元素具有前驱和后继关系. Operation InitStack(*S): 初始化操作,建立一个空栈S. DestroyStack(*S): 若栈存在,则销毁它. ClearStack(*S): 将栈清空. StackEmpty(S): 若栈为空,返回true,否则返回false. G

大话数据结构之栈的顺序存储结构

#include<iostream> //#include<time.h> //#include <stdlib.h> using namespace std; #define OK 1 #define TRUE 1 #define FALSE 0 #define ERROR 0 #define MAXSIZE 100//数组的最大大小 typedef int status;//返回的状态值 typedef int elemtype;//节点里数据的类型 typedef

(源代码见大话数据结构)栈的顺序存储结构——进栈&amp;出栈

#include <stdio.h>#include <time.h>#include <stdlib.h>#define MAXSIZE 1000#define OK 1#define ERROR 0#define TRUE 1#define FALS 0typedef int SElemType;typedef int Status;typedef struct{    SElemType data[MAXSIZE];    int top;}SqStack;Sta

一步一步学习数据结构(三)栈的顺序存储结构实现代码

//栈这种逻辑结构的实现与一般线性表的实现类似,有两种存储方式:顺序存储和链式存储 //先学习顺序存储 //1. #include<stdio.h> #include<stdlib.h> #define null NULL #define SIZE 100 typedef int dataType ; typedef struct { dataType data[SIZE]; int top; }cStack,*cStackPointer; //初始化栈空间 void initSt

Java数据结构系列之——栈(1):栈的顺序存储结构及操作

package Stack; /** * 栈的定义:限定只在表末尾进行增加和删除操作的线性表 * 栈的特点:先进后出FILO(First In Last Out) * 通常我们把允许插入和删除的一段称为栈顶(top),另一端 * 称为栈底,不包含任何元素的栈称为空栈 * 栈的出栈操作我们一般称为进栈或者压栈或者入栈 * 栈的删除操作我们一般称为出栈或者弹栈 * * 这里我们用数组来实现栈的顺序存储结构及各种操作 * @author wl * */ public class MyStack { p

数据结构:队列的顺序存储结构【转】

本文转载自:http://blog.csdn.net/jnu_simba/article/details/8841657 队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表.是一种先进先出的线性表(FIFO).允许插入的一端称为队尾,允许删除的一端称为队头.我们在<栈的顺序存储结构>中发现,栈操作的top指针在Push时增大而在Pop时减小,栈空间是可以重复利用的,而队列的front.rear指针都在一直增大,虽然前面的元素已经出队了,但它所占的存储空间却不能重复利用

栈的顺序存储结构及及其实现

由于栈是线性结构的一种,所以,栈也可以通过顺序存储结构实现. 因为,线性表的顺序存储结构是通过数组实现的,所以,栈的顺序存储结构也通过数组实现.不可避免的,要设置栈的最大存储空间.因为,栈只允许在栈顶进行元素的插入与删除操作,所以需要一个指向栈顶的变量top.那么栈的存储结构: typedef int SElemType; typedef struct{     SElemType data[MAXSIZE];     int top; }SqStack; 接着,就是插入一个新的元素e,也就是进

3.1 栈的顺序存储结构

<?php header("content-type:text/html;charset=utf-8"); /** * 栈的顺序存储结构的基本操作 * *包括 * 1.顺序栈的初始化 __contruct() * 2.销毁栈 destroyStack() * 3.清空栈 clearStack() * 4.判断栈是否为空 stackEmpty() * 5.获取栈顶元素 getTop() * 6.进栈操作 push() * 7.出栈操作 pop() * 8.遍历栈元素 travers

栈(顺序存储结构)

堆栈:具有一定操作约束的线性表,只能在一端作插入.删除 具有后入先出的特性(Last In First Out) 分顺序存储结构.链式存储结构两种形式 堆栈的顺序存储结构 通常由一个一维数组和一个栈顶元素变量组成 图解如下: 形式一:构建结构体 0.结构初始化 #define MaxSize ### struct StackNode { ElementType Data[MaxSize]; int top; }; 1.建立空栈 struct StackNode* createStack() {