栈顺序存储结构定义与基本操作实现.pdfVIP

  • 0
  • 0
  • 约2.65千字
  • 约 6页
  • 2026-03-16 发布于北京
  • 举报

栈顺序存储结构定义与基本操作实现.pdf

table{border‑collapse:collapse;}table,th,td{border:1pxsolid#000;}

下面是完全自己写栈的基本功能的主要工作

2.2.2栈的顺序

类型定义

typedefstructstack{inttop;//就是线性表顺序结构的lengthStackEntry*

elem;//动态分配空间大小为stack_sizeintstack_size;}Stack,*StackPtr;域elem

[0..stack_size‑1]用于存放数据元素

约定top用于存放栈顶元素的位

置,top −1表示空栈,top= 

stack_size−1表示栈满n‑1

10

an

a2

a1

栈底

table{border-collapse:collapse;}table,th,td{border:1pxsolid#000;}

下面是完全自己写栈的基本功能的主要

工作

2.2.2栈的顺序

类型定义

typedefstructstack{inttop;//就是线性表顺序结构的length

StackEntry*elem;//动态分配空间大小为stack_sizeint

stack_size;}Stack,*StackPtr;域elem[0..stack_size-1]用于存放数据

元素

约定top用于存放栈顶元素的位置,

top  −1表示空栈,

top  stack_size−1表示栈满

n-1

1

0

an

栈顶

a2

a1

栈底

顺序栈

•入栈时top指针加1;出栈时top指针减1

顺序栈

•溢出

•顺序栈的数据元素空间大小是预先分配的

•当空间全部占满后再入栈产生的溢出称为“上溢”;

•当栈为空时再出栈也将产生的溢出称为“下溢”

顺序栈入栈操作的实现

状态Stack_Push(StackPtrs,StackEntryitem){状态outcome成功;

if(s‑topMAXSTACK‑1)

outcome=overflow;/*栈满则上溢*/else{s‑top++;s‑entry[s‑top]=item;/*数据元

素放入top位置*/}returnoutcome;

顺序栈

•入栈时top指针加1;出栈时top指针减1

顺序栈

•溢出

•顺序栈的数据元素空间大小是预先分配

•当空间全部占满后再入栈产生的溢出称为“上溢”;

•当栈为空时再出栈也将产生的溢出称为“下溢”

顺序栈入栈操作的实现

StatusStack_Push(StackPtrs,StackEntryitem){Statusoutcome=

success;

if(s-topMAXSTACK-1)

outcome=overflow;/*栈满则上溢*/else{s-top++;s-entry[s-

top]=item;/*数据元素放入top位置*/}returnoutcome;

顺序栈出栈操作的实现

_

StatusStackPop(StackPtrs,StackEntry*item){

状态结果=成功;如果(s‑顶‑1)结果=下溢;/*栈空则下溢*/否则项=s-条

目[s-顶–];/将top所指数据元素放入item,top再减1*/返回结果;}

顺序栈取栈顶元素操作的实现

StatusStack_Top(StackPtrs,StackEntry*item){Statusoutcomesuccess;if

(Stack_Empty(s))outcome=underflow;/*栈空则

文档评论(0)

1亿VIP精品文档

相关文档