数据结构安徽大学考试 联系客服

发布时间 : 星期五 文章数据结构安徽大学考试更新完毕开始阅读1ecd3395011ca300a7c390f9

安徽大学数据结构

一、填空题

1、算法的5个重要特性是_____有穷性_____、___确定性________、___可行性_____、输入和输出。

2、单链表中,除首元素结点外,其它任一元素结点的存储位置由__其前驱的指针域_________指示。

3、在双向链表中,欲在p所指结点之前插入一个由s指向的结点,请完成有关操作。 s->prior=p->prior; p->prior=s; p->next=s->next; s->next=p;

4、对于栈只能在____栈顶____插入和删除元素;对于队列只能在___队尾______插入元素和__队头_____删除元素。

5、在模式匹配的KMP算法中用到了一个next函数,若next[j]=k,则说明在模式串T中存在一个与“T1T2...Tk-1”相等的子串“__Tj-k+1?.Tj-1_______________”。

6、假设有二维数组A6?8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,则数组A共占用_____288_______个字节的存储单元,按行存储时,元素A25的第一个字节的地址为______1126_______。

8、若以{4,5,6,7,8 }作为叶子结点的权值构造哈夫曼树,则其带权路径长度为__69____。 9、广义表g=( ())的表头是_____( )_____,表尾是____( )______。

二、单项选择题

1、线性结构的顺序存储结构是一种?___A___的存储结构,线性结构的链式存储是一种?____B_的存储结构。

A. 随机存取 B. 顺序存取 C. 索引存取 D. 散列存取 2、执行下面程序段时,S 语句的执行次数为__A_______。 for (int i=1;i<=n-1;i++) for (int j=i+1;j<=n;j++) S;

A. n(n?1)/2 B. n2/2 C. n(n?1)/2 D. n

3、将两个各有N个元素的有序表归并为一个有序表,其最少的比较次数是__A______。 A. N; B. 2N-1; C. 2N; D. N-1

4、已知4个元素进栈的顺序依次为A,B,C,D,则下面哪一个出栈序列是不可能得到的__C___。 A. ABCD; B. CBAD; C. CADB; D. BCAD

5、G是一个非连通无向图,共有28条边,则该图至少有____B___个顶点。 A. 8 B. 9 C. 10 D. 12

6、某二叉树的层序序列是abcdefgh,中序序列是dbgehacf,则该树的后序序列是_______C_________。

A . fahgbec B. eagbfdc C. dghebfca D. acdbfge

三、应用题

1.对图2所示的二叉树,要求

图2

(1)将其转换为树或森林,画出转换后的结果。

(2)给出对该树或森林分别进行先根遍历和后根遍历得到的结点序列。 (1) A E G B C D F H I

(2) 先根ABCDEFGHI 后根 BCDAFEHIG

B C F D H I A E G 四、算法阅读题

1、阅读下面算法,按要求作答,其中Push(S, d)表示将数据元素d压入栈S中,Pop(T,d)表示T的栈顶元素出栈并存入d中。 int algo (Stack S , int e) {

int d; Stack T; InitStack(T);

while(!StackEmpty(S)) { Pop(S,d);

if(d!=e) Push(T, d);

} //while

while(!StackEmpty(T)) {

Pop(T, d); Push(S, d); } }

(1)假设栈S中的原始数据从栈底至栈顶依次为:3,5,7,12,5,6,8;e的值为5。请写出算法执行完后栈S中从栈底至栈顶的数据元素序列。 3 7 12 6 8

(2)简述该算法的功能。

将栈S中所有等于e的元素利用栈T从S中删除

2、已知数组a中存放着两组数据元素序列(a0,a1,...,am-1,b0,b1,...,bn-1)。下面算法利用原存储空间将a中的数据元素序列就地互换为(b0,b1,...,bn-1,a0,a1,...,am-1),算法思想可以描述为:

(1)把数组a中的数据元素序列(a0,a1,...,am-1,b0,b1,...,bn-1)就地逆置为(bn-1,...,b1,b0,am-1,...,a1,a0)。