2013数据结构作业2-栈队列和数组-参考答案.doc

2013数据结构作业2-栈队列和数组-参考答案.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013数据结构作业2-栈队列和数组-参考答案

作业2. 栈、队列、数组 非编程作业: 若进栈序列为ABCD,请写出全部可能的出栈序列和不可能的出栈序列。 参考答案: 可能的出栈序列:(14种) dcba cdba bacd cbda adcb cbad bdca acdb bcda acbd bcad abdc badc abcd 不可能的出栈序列:(10种) dbca dbac dabc dacb dcab cabd cdab bdac cadb adbc 简要说明循环队列如何判断队满和队空? 参考答案: 当牺牲一个存储结点,约定以“队列头指针在队列尾指针的下一位置(指环状的下一个位置)上” 作为队列“满”状态的标志时,循环队列判断队满的条件为:(Q.rear+1) % MaxQsize==Q.front;判断队空的条件为:Q.front == Q.rear。 设A为n阶对称矩阵,采用压缩存储存放于一维数组F[n(n+1)/2]中(从F[0]开始存放),请分别给出存放上三角阵时任一矩阵元素aij(1≤i,j≤n)的地址计算公式和存放下三角阵时任一矩阵元素aij(1≤i,j≤n)的地址计算公式。 参考答案: 存放上三角阵时,任一矩阵元素aij(1≤i,j≤n)的地址计算公式为: 存放下三角阵时,任一矩阵元素aij(1≤i,j≤n)的地址计算公式为: 写出下面稀疏矩阵的三元组顺序表和十字链表表示。 参考答案: 编程作业 栈采用顺序栈存储,试设计算法实现将表达式转换成后缀表达式输出。 例如,输入表达式: a+b/c-(d*e+f)*g 输出其后缀表达式:abc/+de*f+g*- 参考答案: #include stdio.h #include stdlib.h #include string.h #define OVERFLOW -2 #define OK 1 #define ERROR 0 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef int Status; typedef char SElemType; typedef char string[80]; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; Status InitStack(SqStack S) { S.base=(SElemType*)malloc(STACK_INIT_SIZE *sizeof(SElemType)); if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACK_INIT_SIZE; return(OK); } Status ClearStack(SqStack S) { S.base=(SElemType*)realloc(S.base,STACK_INIT_SIZE *sizeof(SElemType)); if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACK_INIT_SIZE; return(OK); } void DestroyStack(SqStack S) { S.stacksize=0; if(S.base) free(S.base); S.base=S.top=NULL; } Status StackEmpty(SqStack S) { if(S.top==S.base) return true; else return false; } SElemType GetTop(SqStack S) { SElemType e; if(S.topS.base) e=*(S.top-1); return e; } Status Push(SqStack S, SElemType e) { if(S.top-S.base=S.stacksize) //栈满 { S.base=(SElemType *)realloc(S.base, (S.stacksize + STACKINCREMENT) *sizeof(SElemType)); if(!S

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档