- 10
- 0
- 约4.67万字
- 约 53页
- 2019-09-08 发布于江西
- 举报
版权:wuliming_sc
修改:Air_sky
说明:本资料是Air_sky修改wuliming_sc整理的数据结构材料.仅供各位考研师弟师妹们方便之用,如有什么疑议,请通知Air_sky(iceman0481@163.com)本人即删除!!!
1、栈的基本操作:编写一个算法,利用栈的基本运算将指定栈中的内容进行逆转。
void reverse( Stack *s )
{
Stack s1, s2;
ElemType x;
InitStack( s1 );
InitStack( s1 );
//将s栈中的内容转移到s1栈中
while( StackEmpty( s ) != 0 )
{
Pop( s, x );
Push( s1, x );
}
//将s1栈中的内容转移到s2栈中
while( StackEmpty( s1 ) != 0 )
{
Pop( s1, x );
Push( s2, x );
}
//将s2栈中的内容转移到s栈中
while( StackEmpty( s2 ) != 0 )
{
Pop( s2, x );
Push( s, x );
}
}
解题思路:假定栈采用顺序结构。利用两个临时的栈s1,s2。先将s栈中的内容转移到s1栈中;再将s1栈中内容转移到s2栈中;最后将s2栈中的内容转移到s栈中,这样s栈中的内容就被逆转了。
2、利用两个栈s1、s2模拟一个队列是,如何用栈的运算来实现该队列的运算:
EnQueue:插入一个元素; DeQueue:删除一个元素; QueueEmpty:判断队列为空;
解题思路:由于栈的特点是先进后出,为了模拟先进先出的队列,必须有两个栈,一个栈s1用于插入元素,另一个栈s2用于删除元素,每次删除元素时应将前一个栈的所有元素出栈并压栈到第二个栈中,这样才能达到模拟队列的效果。
int EnQueue( Stack *s1, Stack *s2, ElemType x )
{
if( s1-top == MaxSize ) //队列上溢
return -1;
else
{
Push( s1, x );
return 0;
}
}
int DeQueue( Stack *s1, Stack *s2, ElemType *x )
{
ElemType y;
while( StackEmpty(s1) != 0 ) //将s1的所有元素退栈进入s2中
{
Pop( s1, y );
Push( s2, y );
}
Pop( s2, x ); //将s2的栈顶元素退栈并赋给x
while( StackEmpty(s2) != 0 ) //将s2余下的元素退栈后进入s1中
{
Pop( s2, y );
Push( s1, y );
}
}
3、共享存储空间的栈:有两个栈s1和s2共享存储空间c[1…m],其中的一个栈s1的栈底设在c[1]处,另一个栈s2的栈底设在c[m]处。分别编写s1和s2的进栈push(i, x)、退栈pop(i)和设置栈空setnull(i)的函数,其中i=1、2,分别表示对栈1或者栈2进行设置(注意:仅当整个空间c[1…m]占满时才产生溢出)。
top1 = 1;
top2 = m;
...
int push( ElemType x, int i )
{//上溢出
if( top1 == top2 - 1 )
{
return -1;
}
//对第一个栈进行进栈操作
else if( i == 1 )
{
top1++;
c[top1] = x;
}
//对第二个栈进行进栈操作
else
{
top2--;
c[top2] = x;
}
return 0;
}
int pop( ElemType *x, int i )
{
//对第一个栈进行出栈操作
if( i == 1 )
{
if( top1 == 0 )//栈1下溢出
{
return -1;
}
else
{
x = c[top1];
top1--;
}
}
//对第二个栈进行出栈操作
els
您可能关注的文档
最近下载
- 2025部编版一年级道德与法治下册教学计划.docx VIP
- 以奋斗者为本PPT.ppt VIP
- 学习《未成年人保护法》预防未成年人犯罪知识讲座PPT.pptx VIP
- 2025年度单位普通党员组织生活会个人对照检查材料.docx VIP
- Unit2AmazingChinaReadingI课件-译林版英语八年级下册(1).pptx VIP
- 建设工程工程量清单计价规范(GB 50500-2024).docx VIP
- 华为以奋斗者为本.pptx VIP
- 被执行人生活费申请书范文.docx VIP
- 国际人才英语教程(中级)课后习题答案解析.pdf
- 高频精选:大庆职业学院单招面试题及答案.doc VIP
原创力文档

文档评论(0)