栈的顺序存储结构及实现

还没优化,也就是栈满动态申请内存

#include<cstdio>
#include<cstdlib>
#include<cstring>
#define MAXSIZE 100
typedef struct{
	int data[MAXSIZE];
	int top;
}SqStack;

int Push(SqStack *S,int e){	//压栈操作
	if(S->top == MAXSIZE - 1) return 0;
	S->top++;
	S->data[S->top] = e;
	return 1;
}
int Pop(SqStack *S,int *e){	//出栈操作
	if(S->top == -1) return 0;
	*e = S->data[S->top];
	S->top--;
	return 1;
}
int main(){
	return 0;
}

  

时间: 2024-10-14 05:48:11

栈的顺序存储结构及实现的相关文章

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

//栈这种逻辑结构的实现与一般线性表的实现类似,有两种存储方式:顺序存储和链式存储 //先学习顺序存储 //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

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

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

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

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

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

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

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

一.栈的定义 1.栈(stack)是限定仅在表尾进行插入和删除操作的线性表. 2.把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何元素的栈称为空栈.栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构. 3.栈的插入操作,叫做进栈(push),也称压栈.入栈:栈的删除操作,叫做出栈(pop),也称弹栈. 4.栈的顺序存储结构:既然栈是线性表的特例,那么栈的顺序存储其实也是线性表顺序存储的简化.数组下标为0的一端作为栈底,定义一个top

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() {

栈的顺序存储结构及应用(C、Java代码)

栈的定义: 栈(stack)是限定仅在表尾进行插入和删除的线性表. 我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom) ,不包含任何数据元素的栈称为空栈,栈又称为先进后出的线性表,简称LIFO结构. 栈的插入操作:叫做进栈,或压栈.入栈. 栈的删除操作:叫做,出栈,或者弹栈. 栈的结构定义 1 /*栈的结构定义*/ 2 typedef int sElemType; //sElemType类型定义为int 3 typedef struct { 4 5 sElemType

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

#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