栈的定义及基本操作Word文档下载推荐.docx
- 文档编号:18019356
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:8
- 大小:57.05KB
栈的定义及基本操作Word文档下载推荐.docx
《栈的定义及基本操作Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《栈的定义及基本操作Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
Push_Stack(S,x)初始条件:
栈S已经存在操作结果:
在栈S的顶部插入一个元素x,这样x就、成为新的栈顶元素。
出栈:
Pop_Stack(S,&
x)初始条件:
栈S存在且不为空操作结果:
栈S的顶部元素从栈顶删除,保存在变量x中
取栈顶元素:
GetTop_Stack(S)初始条件:
栈s存在且不为空操作结果:
返回栈S的栈顶元素,且原栈的结构不会变化
销毁栈:
Destory_Stack(S)初始条件:
栈
if(S->
top==STACKSIZE-1)
return0;
else{
S->
top++;
data[S->
top]=x;
return1;
}
}
intPop_SeqStack(PSeqStackS,int*x)
{
if(Empty_SeqStack(S)==1)
*x=S->
top];
top--;
intGetTop_SeqStack(PSeqStackS)
if(Empty_SeqStack(S)==1){
printf("
EmptyStack!
\n"
);
return-1;
else
returnS->
intDestory_SeqStack(PSeqStack*S)
if(*S){
free(*S);
*S=NULL;
intmain()
PSeqStacks;
intx=0;
s=Init_SeqStack();
Push_SeqStack(s,1);
Push_SeqStack(s,2);
Push_SeqStack(s,3);
Push_SeqStack(s,4);
Top:
%d"
GetTop_SeqStack(s));
Destory_SeqStack(&
s);
链式存储
栈的链式存储一般用单链表来实现,实现代码如下:
#include<
stdio.h>
stdlib.h>
malloc.h>
#defineSTACKSIZE100
typedefstructLinkStack{
intdata;
structLinkStack*next;
}LinkStackNode,*PLinkStackNode;
typedefstruct{
PLinkStackNodetop;
}LinkStack,*PLinkStack;
PLinkStackInit_LinkStack()
PLinkStacks;
s=(PLinkStack)malloc(sizeof(LinkStack));
if(s)
s->
top=NULL;
returns;
intEmpty_LinkStack(PLinkStackS)
top==NULL)
elsereturn0;
intPush_LinkStack(PLinkStackS,intx)
PLinkStackNodep;
p=(PLinkStackNode)malloc(sizeof(LinkStackNode));
if(p!
=NULL){
p->
data=x;
next=S->
top;
top=p;
}else
intPop_LinkStack(PLinkStackS,int*x)
PLinkStackp;
if(Empty_LinkStack(S)==1)
p=S;
top->
data;
top=S->
next;
free(p);
intGetTop_LinkStack(PLinkStackS)
if(Empty_LinkStack(S)==1){
intDestory_LinkStack(PLinkStack*S)
PLinkStackNodep,q;
p=(*S)->
while(p){
q=p;
p=p->
free(q);
s=Init_LinkStack();
Push_LinkStack(s,1);
Push_LinkStack(s,2);
Push_LinkStack(s,3);
Push_LinkStack(s,6);
GetTop_LinkStack(s));
Destory_LinkStack(&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定义 基本 操作