当前位置:问答库>考研试题

2018年安徽师范大学数学计算机科学学院896计算机理论基础之数据结构考研基础五套测试题

  摘要

一、算法设计题

1. 设有两个栈S 1,S 2都采用顺序栈方式,并且共享一个存储区的操作算法。

【答案】找的定乂:

两栈共享顺序存储空间所能达到的最多元素数

//假设元素类型为整型

; //栈空间

//top为两个栈顶指针

//S是如上定义的结构类型变量,为全局变量

(1)入栈操作:

//入栈操作。i 为栈号,i =〇表示左栈Sl ,i =l 表示右栈s2,x 是入栈元素。入栈成功返回1,否则返回

(2)出栈操作

//出栈算法。i 代表栈号,i =0时为s1栈,i =l 时为s2栈。出栈成功返回出栈元素,否则返﹣

1

为了尽量利用

空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。试设计S 1,S 2有关入栈和出找

//算法结束

2. 设二叉树用二指针结构存储(可以是动态存储结构) ,元素值为整数,且元素值无重复,请编写子程序,求出以元素值等于某个给定的整数的结点为根的子树中的各个叶结点。

【答案】算法如下:

在二叉树t 中査找结点值等于x 的结

结束

统计以t 为根结点的子树的叶结点数

n0

. 叶结点

输出并计数

结束

:

中关键字分二路分别按序插入到辅助向量

3. 二路插入排序是将待排关键字序列二路插入。编写实现2-路插入排序算法。

【答案】算法如下:

前半部和后半部(注.. 向量d 可视为循环表) ,其原则为,先将r[1]赋给d[1],再从r[2]记录开始分

二路插入排序的算法

辅助存储

插人后部

折半査找插入位置

移动元素

插入有序位置

插入前部

移动元素

将序列复制回去

4. 给定一个整数数组

【答案】算法如下:

//求具有N 个元素的整型数组b 中最长平台的长度。

//局部最长平台

//新平台起点

(“最长平台长度

5. 设从键盘输入一整数的序列:a 1,a 2,a 3,... ,a n ,试编写算法实现:用栈结构存储输入的整数,

时,将

入栈;当

时,输出栈顶整数并出栈。算法应对异常情况(入栈满等) 给

出相应的信息。

【答案】算法如下

:

栈空间容量

//s是元素为整数的栈,本算法进行入栈和出栈操作

//top为栈顶指针,定义top =0时为栈空

//n个整数序列进行处理

//从键盘读入整数序列

//读入的整数不等于﹣1时人栈

//读入的整数等于﹣1时出栈

b 中连续的相等元素构成的子序列称为平台。试设计算法,

求出b 中最长平台的长度。

在b 数组中起始下标为”,1,

k)