傻大方


首页 > 知识库 > >

2016|2016广工AnyView数据结构第1-5章答案( 二 )


按关键词阅读: 答案 数据结构 AnyView 2016



10、f struct ElemType elem; / 存储空间的基址int top;
/ 栈顶元素的下一个位置 , 简称栈顶位标int size;
/ 当前分配的存储容量int increment;
/ 扩容时,增加的存储容量 SqStack; / 顺序栈*/Status GetTop_Sq(SqStack S, ElemType e) /* 取顺序栈S的栈顶元素到e,并返回OK; */ / 若失败 , 则返回ERROR. */if(S 。
top=0) return ERROR;
e=S.elemS.top-1;
return OK;/*【题目】试写一算法 , 实现顺序栈的出栈操作Pop_Sq(SqStack & 。

11、S, ElemType e) 。
顺序栈的类型定义为:typedef struct ElemType *elem; / 存储空间的基址int top;
/ 栈顶元素的下一个位置,简称栈顶位标int size; / 当前分配的存储容量int increment;
/ 扩容时,增加的存储容量 SqStack; / 顺序栈*/Status Pop_Sq(SqStack S ,ElemType &e) /* 顺序栈S的栈顶元素出栈到e , 并返回OK;*/ /* 若失败,则返回ERROR. /if(S.top=0)return ERROR;e=S.elem-S 。
top;
return OK;/*【题目】若顺序栈 。

12、的类型重新定义如下.试编写算法 , 构建初始容量和扩容增量分别为size和inc的空顺序栈S.typedef struct ElemType elem;
/ 存储空间的基址ElemType *top;
/ 栈顶元素的下一个位置int size;
/ 当前分配的存储容量int increment;
/ 扩容时 , 增加的存储容量 SqStack2;
*/Status InitStack_Sq2(SqStack2 S, int size, int inc)/* 构建初始容量和扩容增量分别为size和inc的空顺序栈S 。
/ / 若成功 , 则返回OK;否则返回ERROR 。
/S 。
elem=(ElemType*)m 。

【2016|2016广工AnyView数据结构第1-5章答案】13、alloc(sizeof(ElemType);if(S 。
elem=NULLsizeS.size)p=(ElemType*)realloc(S 。
elem , (S 。
size+S.increment)sizeof(ElemType));if(p=NULL)return ERROR;
S 。
elem=p;S.size+=S 。
increment;
*(S.top+)=e;
return OK;
/*【题目】若顺序栈的类型重新定义如下.试编写算法 , 实现顺序栈的出栈操作.typedef struct ElemType *elem;
/ 存储空间的基址ElemType top;
/ 栈顶元素的下一个位置int size; 。

14、 / 当前分配的存储容量int increment; / 扩容时,增加的存储容量 SqStack2;
*/Status Pop_Sq2(SqStack2 &S, ElemType e) / 若顺序栈S是空的 , 则返回ERROR; / / 否则将S的栈顶元素出栈到e , 返回OK 。
*/if(S 。
elem=S 。
top)return ERROR;
e=*(-S 。
top);
return OK;/*【题目】试写一算法,借助辅助栈 , 复制顺序栈S1得到S2.顺序栈的类型定义为:typedef struct ElemType elem;
/ 存储空间的基址int top;
/ 栈顶元素的下一个位置 , 简称栈顶位标int。

15、size; / 当前分配的存储容量int increment;
/ 扩容时,增加的存储容量 SqStack;
/ 顺序栈可调用顺序栈接口中下列函数:Status InitStack_Sq(SqStack &S ,int size ,int inc);
/ 初始化顺序栈SStatus DestroyStack_Sq(SqStack S); / 销毁顺序栈SStatus StackEmpty_Sq(SqStack S);
/ 栈S判空 , 若空则返回TRUE,否则FALSEStatus Push_Sq(SqStack S, ElemType e); / 将元素e压入栈SStatus Pop_Sq(Sq 。

16、Stack &S ,ElemType &e);
/ 栈S的栈顶元素出栈到e*/Status CopyStack_Sq(SqStack S1, SqStack S2) / 借助辅助栈,复制顺序栈S1得到S2 。
/ /* 若复制成功 , 则返回TRUE;
否则FALSE. /if(StackEmpty_Sq(S1))S2.top=0;
return TRUE; S2.elem=S1.elem;
S2.top=S1 。
top;
return TRUE;/*【题目】试写一算法,求循环队列的长度 。
循环队列的类型定义为:typedef struct ElemType *base;
/ 存储空间的基址int front; 。

17、 / 队头位标int rear;
/ 队尾位标,指示队尾元素的下一位置int maxSize; / 最大长度 SqQueue;*/int QueueLength_Sq(SqQueue Q)/* 返回队列Q中元素个数 , 即队列的长度 。
/ if(Q.rear-Q.front0) return Q.maxSize-Q 。
front+Q.rear;
return Q.rearQ.front;
/*【题目】如果希望循环队列中的元素都能得到利用 , 则可设置一个标志域tag,并以tag值为0或1来区分尾指针和头指针值相同时的队列状态是空还是满”.试编写与此结构相应的入队列和出队列的算法 。
本题的循环队列CTagQue 。

18、ue的类型定义如下:typedef struct ElemType elemMAXQSIZE;int tag;int front;
int rear; CTagQueue;*/Status EnCQueue(CTagQueue Q, ElemType x)/* 将元素x加入队列Q , 并返回OK;*/* 若失败 , 则返回ERROR 。
/if(Q.front=Q 。
rear&Q 。
tag=1) return ERROR;
if(Q 。
rear=0) Q.elem0=x;
Q.rear+=1;
elseQ.elemQ.rear=x;
Q 。
rear=(Q 。
rear+1)MAXQSIZE;
Q.tag=1;
return OK 。

19、;
Status DeCQueue(CTagQueue Q ,ElemType x)/* 将队列Q的队头元素退队到x , 并返回OK;


来源:(未知)

【学习资料】网址:/a/2021/0321/0021742210.html

标题:2016|2016广工AnyView数据结构第1-5章答案( 二 )


上一篇:试题|[试题]小学义务教育学校标准化建设规划

下一篇:课时讲练通|【课时讲练通】2014年高中历史单元质量评估(五)新人教版选修1