1 / 40
文档名称:

软件技术基础.ppt

格式:ppt   大小:2,429KB   页数:40页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件技术基础.ppt

上传人:莫欺少年穷 2020/1/8 文件大小:2.37 MB

下载得到文件列表

软件技术基础.ppt

相关文档

文档介绍

文档介绍:软件技术基础制作主讲段景山段景山线性结构栈和队列栈结构2、堆栈stack栈是特殊的线性表,仅在表的一端进行插入或删除操作an...a2a1栈顶入栈出栈栈底是抽屉一类物理实体的逻辑抽象类似仓库、抽屉的结构特点:(1)对栈内数据的操作总在栈顶进行 (2)数据进栈称为“压入”push (3)数据出栈称为“弹出”pop (4)遵循“后进先出”[max]...a[12]a[0]...a[top]栈顶a[0]为栈底,top为栈顶(1)定义typedefstructstack_type{ elemtypedata[MAXNUM]; inttop;//栈顶元素所在位置}stack_type;(2)压入push当新元素入栈时,栈顶上移,新元素放在栈顶。...=+1;[]=new_one;new_one栈顶元素所在位置a1a2元素个数为top+1用数组实现栈...(3)弹出pop从栈顶移出一个数据。a[max]...a[1]a[0]a1a2栈顶栈顶元素拷贝出栈,栈顶下移outout=[];=-1;elemptypepop(stack_type*stack){ elemtypeout; if(stack->top<=0)error(3); else{ out=stack->data[stack->top]; stack->top=stack->top-1; } returnout;}a[top]用数组实现栈(4)==<0(5)=-1;栈满判断:>=MAXNUM-1;a[1][0]为栈底,top为栈顶之上新空间位置(2`)压入(3`)弹出(4`)栈空判断(5`)置栈空a[max]...a[1]a[0]...a[top]=+1;[]=new_one;a[top]=-1;out=[];==0;=0;元素个数为top有更好的逻辑性用数组实现栈(6)栈的应用程序的嵌套,中断的嵌套procA(){......callB();callC();}procB(){ ...... callC() ......}(){ ...... ...... ......}程序A程序B程序C程序A程序B程序C程序C利用用户栈实现了程序调用后回到调用处用数组实现栈程序的嵌套与局部变量程序的指令位置和局部变量存放在用户栈当C()被调用时其局部变量会覆盖B的局部变量procA(){inta,b;......callB();callC();}procB(){intx,y; ...... ......}程序Aa、b程序Bx、y程序Co、(){into,p; ...... ......}……head栈顶在表头(1)定义typedefstructlstack_type{ node_type*top; intlength;}lstack_type;入栈出栈top用链表实现栈(2)压入pushvoidpush(stack,new_node){ new_node->next=stack->top; stack->top=new_node; stack->length++;}(3)弹出popnode_type*pop(stack){ node_type*out; out=stack->top; stack->top=stack->top->next; stack->length--; returnout;}a1new……stack->topout