栈的顺序存储实现
来源:互联网 发布:黑帮之地mac 编辑:程序博客网 时间:2024/03/28 18:22
#ifndef _SEQUENCE_STACK_LIST_H_#define _SEQUENCE_STACK_LIST_H_#pragma once/************************************************************************//* 顺序存储栈实现SequenceStackList *//************************************************************************//*ADT 栈(Stack)Data线性表的数据对象集合为{a1,a2,....an},每个元素的类型为DataType。其中除了第一个元素a1外,其他数据元素都有且仅有一个后继元素,除了最后一个元素an外,其他数据元素都有且仅有一个前驱元素。数据元素之间的关系时一种一对一的关系。OperationInitStack(*S);初始化操作,建立一个空的栈S。DestoryStack(*S);若栈存在,则销毁它ClearList(*S);将栈清空StackEmpty(S);若栈为空返回true,否则返回falseGetTop(S,*e);若栈不为空,返回栈顶元素Push(*S,e);如果栈存在,插入新元素e到栈S中,并成为新的栈顶元素Pop(*L,*e);删除栈S中栈顶元素,并返回这个位置的元素值eStackLength(S);返回栈S的元素个数TraversList(S);遍历栈S元素endADT*/typedef struct SequeceStackList{int top;ElemType data[MaxCapacity];}SequeceStackList;/*初始化操作,建立一个空的栈S。*/Status InitStack(SequeceStackList* S);/*若栈存在,则销毁它*/Status DestoryStack(SequeceStackList* S);/*将栈清空*/Status ClearStack(SequeceStackList* S);/*若栈为空返回true,否则返回false*/bool StackEmpty(SequeceStackList S);/*若栈不为空,返回栈顶元素*/Status GetTop(SequeceStackList S,int* e);/*如果栈存在,插入新元素e到栈S中,并成为新的栈顶元素*/Status Push(SequeceStackList* S,int e);/*删除栈S中栈顶元素,并返回这个位置的元素值e*/Status Pop(SequeceStackList* S,int *e);/*返回栈S的元素个数*/int StackLength(SequeceStackList S);/*遍历栈S元素*/Status TraverseStack(SequeceStackList S);#endif//_SEQUENCE_STACK_LIST_H_
#include "stdafx.h"#include "SequenceStackList.h"/*初始化操作,建立一个空的栈S。*/Status InitStack(SequeceStackList* S){S->top = 0;return OK;}/*若栈存在,则销毁它*/Status DestoryStack(SequeceStackList* S){ClearStack(S);free(S);S = NULL;return OK;}/*将栈清空*/Status ClearStack(SequeceStackList* S){while(S->top){S->data[S->top--];}return OK;}/*若栈为空返回true,否则返回false*/bool StackEmpty(SequeceStackList S){return S.top == 0;}/*若栈不为空,返回栈顶元素*/Status GetTop(SequeceStackList S,int* e){if(StackEmpty(S))return ERROR;*e = S.data[S.top];return OK;}/*如果栈存在,插入新元素e到栈S中,并成为新的栈顶元素*/Status Push(SequeceStackList* S,int e){S->data[++S->top] = e;return OK;}/*删除栈S中栈顶元素,并返回这个位置的元素值e*/Status Pop(SequeceStackList* S,int *e){if(StackEmpty(*S))return ERROR;*e = S->data[S->top--];return OK;}/*返回栈S的元素个数*/int StackLength(SequeceStackList S){return S.top;}/*遍历栈S元素*/Status TraverseStack(SequeceStackList S){for (int i = S.top ; i >= 1 ; i--){std::cout<<"链表中第"<<i<<"个元素的值为:"<<S.data[i]<<std::endl;}return OK;}
0 0
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储实现
- 栈的顺序存储结构的实现
- 栈的顺序存储的实现代码
- 栈的顺序存储的代码实现
- 顺序栈存储实现
- 顺序存储实现栈
- 栈的顺序存储实现和链式存储实现
- 栈的顺序存储结构---顺序栈的实现
- 栈的顺序存储结构实现
- 数据结构:栈的顺序存储实现
- 栈的顺序存储结构和实现
- 线性结构--->栈的顺序存储实现
- poj-3579 Median
- STL vector用法介绍
- 线性表链式存储结构实现 --单向循环链表
- 线性表链式存储结构实现 --双向循环链表
- linux下监测命令执行结果的工具watch小结
- 栈的顺序存储实现
- 黑马程序员——常用集合特点及其方法
- 栈的链式存储实现
- 和风天气-城市ID-sqlite数据库构建
- 异步并发保持数据一致性
- 黑马程序员——集合的特殊功能之迭代器
- QT实现文件查找显示列表功能
- 做好SEO排名其实不难
- Java爬取有道图片