- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 关于考试 考试形式:笔试,120分钟,100分 考试时间地点:待定 笔试形式: 选择题 填空题、判断题 简答题、计算题 算法题 最终成绩=笔试×0.7+上机×0.2+作业×0.1 * 题型举例-填空题 线性表L=(a1,a2,...,an)采用顺序存储,假定在不同的n+1个位置上的插入概率相同,则插入一个新元素平均需要移动的元素个数是( n/2 ) 。 在一个长度为n的顺序表中, 在第i个元素(1 ? i ?n)之前插入一个新元素时, 需向后移动( n-i+1 )个元素。 在表长为n的单链表中, 取得第i (1? i ? n)个数据元素必须从(第一个元素 )出发开始寻找。 S、 X分别表示入栈、出栈操作。若入栈序列为1、2、3、4,出栈序列为1、3、4、2,则相应的入栈、出栈操作是(SXSSXSXX )。 设循环队列的容量为70(序号从1到70),现经过一系列的入队与出队运算后,front=20,rear=11,则队列中元素个数为( 61 ) 。 * 题型举例-选择题 1. 若线性表中最常用的操作是在最后一个结点后插入一个结点和删除最后一个结点,则采用 D 存储方式最节省运行时间。 A. 单向链表 B. 带头结点的单向链表 C. 单向循环链表 D. 带头结点的双向循环链表 2.快速排序在 C 情况下最不利于发挥其特长。 A. 被排序的数据量太大 B. 被排序中含有多个相同值 C. 被排序的数据已基本有序 D. 被排序的数据中有实数 * 题型举例-简答题 1. 已知二叉树T的先序遍历序列和中序遍历序列分别为EBADCFHGIKJ和ABCDEFGHIJK。 (1)试画出二叉树T; E B D A C F H G I K J * 题型举例-简答题 2. 设有序列(503,87,512,61,908,170,897) (1)写出增量为3时进行一趟希尔排序的结果; (2)建成一个小顶堆; (3)给出执行一趟快速排序的结果; 61 87 170 503 908 512 897 503 87 512 61 908 170 897 初始完全二叉树 61 87 170 503 908 512 897 初始小顶堆 170 87 61 503 908 512 897 * 题型举例-算法题 1. 若以域变量rear和length分别指示循环队列中队尾元素的位置和队列中元素的个数。请完善下面的入队列算法。 #define MAXQSIZE 100 //最大队列长度 typedef struct { Qelemtype *base; //base为队列所在存储区域的首地址 int length; //队列长度 int rear; //队尾元素位置 }SqQueue; Status EnQueue(SqQueue Q, Qelemtype e)//将元素e插入队列Q { if( Q.length==MAXQSIZE ) return ERROR;//队列满,无法插入 Q.rear = (Q.rear+1)%MAXQSIZE ; Q.base[Q.rear] = e; //e作为新的队尾元素 Q.length++; //队列长度加1 return OK; } * 题型举例-算法题 2.已知线性表中的元素以值递增有序排列,并以单链表作为存储结构。写一个高效的算法删除表中在所有值大于mink且小于maxk的元素,同时释放被删除元素节点空间,并分析算法时间复杂度 算法思想 1. 找到第一个值大于mink的节点ai,并得到其前驱节点的指针p,令q指向ai 2. 当q指向的节点值小于maxk时删除节点,释放空间,并将q移动到下一个节点 3. 重复2,直到q指向的节点值大于等于maxk或者到达链表尾 4. 修改p的指针域指向q * int DeleteBetween(LinkList L,int mink,int maxk){ int count=0; if(minkmaxk)return count; p=L; //找到第
原创力文档


文档评论(0)