首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
为了增加内存空间的利用率和减少溢出的可能性,通常采用两个栈利用同一块存储空间的方法。通常两个栈的栈底设在内存空间的两端,而栈顶相向,迎面增长。已知有两个栈s1、s2都采用顺序栈方式,并且共享一个存储区[0~maxsize一1]。 设计共享存储空间的
为了增加内存空间的利用率和减少溢出的可能性,通常采用两个栈利用同一块存储空间的方法。通常两个栈的栈底设在内存空间的两端,而栈顶相向,迎面增长。已知有两个栈s1、s2都采用顺序栈方式,并且共享一个存储区[0~maxsize一1]。 设计共享存储空间的
admin
2019-08-15
41
问题
为了增加内存空间的利用率和减少溢出的可能性,通常采用两个栈利用同一块存储空间的方法。通常两个栈的栈底设在内存空间的两端,而栈顶相向,迎面增长。已知有两个栈s1、s2都采用顺序栈方式,并且共享一个存储区[0~maxsize一1]。
设计共享存储空间的两个栈s1、s2的入栈和出栈算法。要求:
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释;
选项
答案
算法设计如下: #define maxsize //两栈共享顺序存储空间所能达到的最多元素数 #define elemtp int //假设元素类型为整型 typedef struct { elemtp stack[maxsize];//栈空间 int top[2]; //top为两个栈顶指针 }stk; stk s: //s是如上定义的结构类型变量,为全局变量 ①入栈操作: int push(int i,int x){ //入栈操作。i为栈号,i=0表示左边的栈sl,i=1表示右 //边的栈s2,x是入栈元素。入栈成功返回1,否则返回0 if(i<0 ∣∣i>1){printf(”栈号输入不对”);exit(0); } if(s.top[1]一s.top[0]==1){printf(”栈已满\n”);return(0); } switch(i){ case 0:s.stack[++s.top[0]]=x:return 1;break; case l:s.stack[--s.top[1]]=x;return 1: } } ②退栈操作: elemtp pop(int i){ if(i<0∣∣i>1){printf(”栈号输入错误\n”): exit(0);} switch(i){ case 0:if(s.top[0]==一1){prinff(”栈空\n”);retum一1;} else return s.stack[s.top[0]--]: case 1:if(s.top[1]==maxsize}{printf(”栈空\n”);retum一1;} else return s.stack[s.top[1]++]; } }
解析
转载请注明原文地址:https://kaotiyun.com/show/gOCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
电子计算机的发展经过了四代,①电子数值积分计算机(ENIAC);②集成电路计算机;③大规模集成电路计算机;④晶体管计算机;⑤人工智能计算机,其先后顺序是()。
1628年出版了《心血运动论》一书,论证了血液在全身的循环运动,使生理学发展为科学的是()。
隋唐五代时期是中国古代商品经济发展史上的一个重要阶段,种类多,交换规模大,交换方式多。试回答问题:下列关于隋唐钱币的表述,不正确的是()
在一个8级中断的系统中,硬件中断响应从高到低的优先顺序是1→2→3→4→5→6→7→8,通过中断屏蔽技术,将中断处理优先顺序设置为1→3→5→7→2→4→6→8,如果CPU在执行一个应用程序时有5、6、7、8级的四个中断同时到达,CPU在按优先顺序处理到第
在一个双链表中,在*p结点之前插入*q结点的操作是()。
关于死锁的银行家算法是围绕“安全状态”的概念工作的。当系统预测到不安全状态时,就拒绝分配资源,但是,银行家算法要求的条件并不是必要的。例如,某系统有12个资源供进程P0、P1、P2使用。目前的分配情况如下:(1)请说明系统处于不安全状态;(2
一个客户机利用FTP协议从服务器上下载文件,如下图所示为整个过程中协议交换的过程,请回答如下问题:(1)该协议层图中第四层协议是什么?(2)如果FTP客户端采用了LIST命令来获得FTP服务器上的文件列表,该列表采用什么端口传输?
设有一个双向链表h,每个结点中除有prior,data和next三个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域都被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域中的值加一,并调整表中
设二维数组A[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放的数组元素,a[0][O]的存储地址为860,则a[3][5]的存储地址为()。
假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享卡H同的后缀存储空间。例如,“loading”和“being”的存储映像如下图所示。设str1和m2分别指向两个单词所在单链表的头结点,链表结点结构为请设计一个时间上尽可能高效的算法,找出
随机试题
亚急性感染性心内膜炎最常见的致病菌是
A.乳汁郁积,肝郁胃热B.肝气痰凝,冲任不调C.肝肾亏损,冲任失调D.肺肾阴虚,痰火循经结于乳房E.肝郁化火,迫血妄行
一烧伤患者,其创面脓液呈鲜绿色,有一种特殊的霉腥味,其感染细菌可能为绿脓杆菌。()
关于基金销售人员的行为,以下表述正确的是()。[2015年12月真题]
开启城市发展“黄河时代”大幕,推动济南跨过黄河、携河发展的重大机遇是建设()。
下列选项中不属于洗钱罪的上游犯罪的是()(2019年一专一第4题)
关系模型中的术语"元组"对应的概念在Access数据库中的是
假设某台式计算机内存储器的容量为1KB,其最后一个字节的地址是()。
Everynightshelistenedtoherfathergoingaroundthehouse,lockingthedoorsandwindows.Shelistened:thebackdoorclosed
Exceptionalchildrenaredifferentinsomesignificantwayfromothersofthesameage.Forthesechildrentodeveloptheirfull
最新回复
(
0
)