#1060. 栈的链式存储结构(选1_P83)
栈的链式存储结构(选1_P83)
Description
用单链表存储栈中元素,指针top指向栈顶元素所在的位置,具体如下图所示:

用单链表构建栈方法如下:
(1)栈空条件:top==-1
(2)入栈操作:分配新数据空间,放置数据,然后更新栈顶指针位置:
sta.append(x); sta[top][1]=len(sta)-1; top=len(sta)-1
(3)出栈操作:删除栈顶元素,然后更新栈顶指针位置: top=sta[top][1]
(4)栈满处理:链式栈可以临时分配不连续的数据空间,通常不再探讨栈满条件
说明:
当执行出栈操作时,若栈为空,则输出"ERR empty!",后续操作将不再执行。
Format
Input
输入一行字符,描述入栈和出栈:
其中字符“I”表示入栈,后面数据表示入栈元素; 字符“O”表示出栈,后面则没有数据。 如:I,3,I,5,O,I,7,I,19,O,O,O,O
Output
出栈时,输出数据值及存储指针(用空格间隔),如:5 1
空栈时执行出栈操作,则输"ERR empty!",后续操作将不再执行。
Samples
I,3,I,5,O,I,7,I,19,O,O,O,O
5 1
19 3
7 2
3 0
ERR empty!
Limitation
1s, 1024KiB for each test case.
相关
在以下作业中: