好文档 - 专业文书写作范文服务资料分享网站

数据结构与算法课程数据结构03

天下 分享 时间: 加入收藏 我要投稿 点赞

InitStack(&S) DestroyStack(&S) StackLength(S) StackEmpty(s) GetTop(S, &e) ClearStack(&S) Push(&S, e) Pop(&S, &e) StackTravers(S, visit()) 1) 初始化操作InitStack((&S) 功能:构造一个空栈S;

2) 销毁栈操作DestroyStack(&S) 功能:销毁一个已存在的栈; 3) 置空栈操作ClearStack(&S) 功能:将栈S置为空栈;

4) 取栈顶元素操作GetTop(S, &e) 功能:取栈顶元素,并用e 返回; 5)进栈操作Push(&S, e) 功能:元素e进栈;

6)退栈操作Pop(&S, &e) 功能:栈顶元素退栈,并用e返回; 7)判空操作StackEmpty(S)

功能:若栈S为空,则返回True,否则返回False;

top

top base 空栈

top base A base E D C B A top base B A A进栈 B C D E 进栈 E D C 出栈

栈操作图示

三 栈的存储实现

与线性表类似,栈也可以用顺序结构或链式结构存储。

1 栈的顺序存储结构

栈的顺序存储结构也是利用一组连续的内存单元依次存放自栈底到栈顶的数据元素,栈顶元素的位置由一个称为栈顶指针的变量指示 。栈的顺序存贮结构也称为顺序栈。 2. 顺序栈的类型定义

#define STACK_INIT_SIZE 100 // 栈存储空间的初始分配量 #define STACKINCREMENT 10 // 栈存储空间的分配增量 typedef struct{ SElemType *base; //栈空间基址 SElemType *top //栈顶指针 int stacksize; //当前分配的栈空间大小

}SqStack;

//以sizeof(SElemType)为单位

SqStack:结构类型名;SqStack类型的变量是结构变量,它的三个域分别是:

base:称为栈底指针,指向栈底位置;

top:称为栈顶指针,约定栈顶指针指向栈顶元素的下(后面)一个位置;

Stacksize:用于存放当前分配的存储空间的大小;

数据结构与算法课程数据结构03

InitStack(&S)DestroyStack(&S)StackLength(S)StackEmpty(s)GetTop(S,&e)ClearStack(&S)Push(&S,e)Pop(&S,&e)StackTravers(S,visit())1)初始化操作InitStack((&S)功能:构造一个空栈S;2)销毁栈操作Destroy
推荐度:
点击下载文档文档为doc格式
4vn3o9y6wm5kaxd91bwp423gj8gje700l39
领取福利

微信扫码领取福利

微信扫码分享