Python 之“栈为何物”

Python 之“栈为何物”,第1张

究竟栈为何物

栈是一种 线性数据结构 ,用 先进后出 或者是 后进先出 的方式存储数据,栈中数据的插入删除 *** 作都是在栈顶端进行。

栈是一种特殊的列表,栈内的元素只能通过一端进行访问,这一端为栈顶。

Python 如何实现栈

使用内置数据结构 List 可以用来实现栈;

使用 append() 向栈顶添加元素

使用 pop() 可以以后进先出的顺序删除元素;

Python 实战代码

5.1.1. 把列表当作堆栈使用

列表方法使得列表可以很方便的做为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。例如:

>>>stack = [3, 4, 5]

>>>stack.append(6)

>>>stack.append(7)

>>>stack

[3, 4, 5, 6, 7]

>>>stack.pop()

7

>>>stack

[3, 4, 5, 6]

>>>stack.pop()

6

>>>stack.pop()

5

>>>stack

[3, 4]

// InitStatck 函数:用来初始化栈空间。

Status InitStack(SqStack &S)

{

S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType))

if(!S.base) return(ERROR)

S.top=S.base

S.stacksize=STACK_INIT_SIZE

return OK

}

//Push函数:将元素压栈

Status Push(SqStack &S,SElemType e)

{

if(S.top-S.base>=S.stacksize) //压栈前判断栈空间是否够用

{ //如果栈空间大小不够,给栈分配更大的空间

S.base=(SElemType*)realloc(S.base, (S.stacksize+STACKINCREMENT)*sizeof(SElemType))

if(!S.base) return(ERROR)

S.top=S.base+S.stacksize

S.stacksize+=STACKINCREMENT //记录当前栈空间的大小

}

*S.top++=e //将要压栈的元素值压入栈的顶部!

return OK

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11945322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存