数据结构仅供参考.docx
《数据结构仅供参考.docx》由会员分享,可在线阅读,更多相关《数据结构仅供参考.docx(7页珍藏版)》请在冰豆网上搜索。
![数据结构仅供参考.docx](https://file1.bdocx.com/fileroot1/2022-12/1/7e5f9dbf-b56f-42d3-b0ff-d785bcfcd0fe/7e5f9dbf-b56f-42d3-b0ff-d785bcfcd0fe1.gif)
数据结构仅供参考
PS(边看书边做的,一年了忘记的差不多了,答案仅供参考不喜勿喷)
1.有函数段,分析其时间复杂度。
根据公式:
T(n)=O(f(n))
可以得出:
常数阶O
(1),对数阶O(log2n),线性阶O(n),
线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3),...,
k次方阶O(nk),指数阶O(2n)
由此可见,随着问题规模的n不断增大,时间复杂度也不断增加,因此算法的执行效率越低
2.试证二叉树的性质1及2.
性质1:
在二叉树的第i层上之多有2^(i-1)个结点(i>=1)
当i=1,时,只有一个节点为根结点,所以正确。
当i>=1时,每一层每个结点至多只有2个度及i层上至有2^(i-1)个结点,
所以i上的结点数为i-1上的两倍。
i-1上的结点为2^(i-2)
所以2*2^(i-2)=2^(i-1)
所以性质1正确
性质2:
深度为K的二叉树之多有2^(k-1)个结点
P.123公式
个人理解性质2跟性质1其实差不多,就是把性质1中的i=(0,1……k)然后求和。
3栈和队列的共同点和不同点。
共同点:
都是只能在线性表的端点插入和删除
不同点:
栈的插入和删除都在线性表的同一个端点,该点通称栈顶,相应地,不能插入删除的另一个端点通称栈底,其特性是后进先出
队列在线性表的表头插入,表尾删除,表头一般称队头,表尾一般称队尾,其特性是先进先出
(记住加粗部分就行)
4在双链表中插入(删除)指针p指的结点的关键语句。
q->next=p->next;//删除的结点的后一结点的首地址赋值给删除的结点的前一结点的next
p->next->prior=q;//删除的结点的后一结点的prior指向删除的结点的前一结点的首地址
free(p);
5一棵二叉树的结点数据采用顺序存储,如下图所示,试用二叉链表表示它。
A
B
C
0
D
0
E
0
0
F
J
0
0
P
6某二叉树结点的先根序列和中根序列为已知,试构造该树。
(自行举例)
先序遍历是先访问当前节点,然后再遍历左子树,最后是右子树。
中序遍历是先遍历左子树,再访问当前节点,最后是右子树。
P.129
7某带权无向图的邻接矩阵已知(自行举例),试画出该图,并用Prim或者Kruskal算法构造出该图的一棵最小生成树的步骤。
8下面是某文件中各字母频度表(自行举例)。
(1)构造其Huffman树(
(2)求得各字母的Huffman编码。
P.146
9算法设计
利用栈实现将十进制数转变成7进制数。
略
10算法设计:
设一棵二叉树以二叉链表为存储结构,结点结构为
lchild
data
rchild
若data为整数,求此二叉树中data值最大的结点。
略。
11从数据的逻辑结构来看,可分为线性结构(如线性表)和非线性结构两大类,栈和图分别属于哪类?
栈是线性结构。
图是非线性结构。
12树中,没有后继结点的结点称为什么结点,有向图中,顶点的度是?
没有后继结点的结点称为终端结点
顶点的度是入度与出度的和
13栈的操作规则
先进后出后进先出
14在双链表中,每个结点有两个指针域,实际指向什么
一个指向直接前驱,一个指向直接后继
15二维数组M每个元素占2字节,其行下标从0到6,列下标从1到9,则存放M至少需要?
字节,其第1列和第2行共占多少字节。
16深度为h的满二叉树结点数,其第j层的结点最多有多少兄弟结点。
2^(h-1)-1个兄弟结点
17无向完全图中,则所有顶点的度数之和为s则图的边数?
什么是网?
设e为边数e=s/2
弧带权值的就是网
18根据二叉树的定义,有4个结点的二叉树有多少种不同的形态,其最大深度?
19在一个长度为m的向量中,删除第j个元素需向前移动多少个元素;在第j个元素之前插入一个元素需要向后移动多少个元素。
m-j
m-j+1
20在堆排序和快速排序两种排序方法中,若初始数据基本正序或反序,则选用哪种效率较高,而当初始数据无序时,则选用哪种更好。
有序:
堆排序
无序:
快速排序
21从数据的逻辑结构来看,可分为线性结构(如线性表)和非线性结构两大类,而非线性结构有哪两种。
树,图
22树形结构中,有唯一的结点没有前趋结点,该结点称为什么结点,在图形结构中,某结点的前趋和后继结点可为多少个。
根节点
任意多个。
23一个栈的入栈序列为1,2,3,4,,则其出栈序列为?
,一个有x个分量的循环队列中,队满时有多少个元素。
多种情况满足先进后出后进先出情况即可。
C(n,2n)/(n+1)=14
24在单链表中,结点结构为:
data
next
p所指结点的后继结点是q所指的结点,要在它们之间插入p所指的结点,须执行的关键操作是
q->next=p->next;p->next=q
25二维数组M每个元素有4个字符,其行下标从1到7,列下标从1到5,则存放M至少需要多少字节,其第8列和第5行共占需多少字节?
思路同14题
答案:
14056
26深度为k的完全二叉树至少有多少个结点,最多为多少个结点。
2^(k-1)
2^k-1
27无向图中,边数为e,顶点数为n,求所有顶点的度数之和;n=12时,e最大为多少。
度数和=2e(如果是有向图则为e)
Emax=n(n-1)/2=66
28n个顶点的连通图的连通子图至少需要多少条边,这图的生成树,它是唯一的吗?
。
n-1
不唯一
29在一个长度为n的有序序列中查找目标值x,利用顺序查找,求其平均查找长度;利用折半查找求其平均查找长度。
顺序查找(n+1)/2
折半查询((n+1)log2(n+1))/n-1,
30在插入排序和选择排序两种排序方法中,若初始数据基本正序,则选用哪种效率较高,而当初始数据基本反序时,则选用哪种效率更高。
正序:
插入
反序:
选择
31设各结点的权值为:
1,5,9,4,8,15。
试为它们构造一棵Huffman树。
(1)画出构造过程
(2)计算WPL
从根节点到每一个带权的节点距离长度与节点的权值乘积相加就是WPL值
32什么是图的生成树。
一个连通图的生成树是一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边
33在AOE网中,
(1)求出拓扑序列;
(2)计算各顶点所表示的事件发生时间
(3)找出关键路径;
(例自举)
34设有向图的存储结构为邻接矩阵(其中i行j列的元素表示从顶点i至顶点j的弧的权值),用C语言编写求图中各顶点的最大出度(以该顶点为弧尾)。
略
35结合实例说明快速排序的基本思想。
略
36在一个长度为n的顺序线性表中顺序查找值为x的元素时,求查找成功时的平均查找长度假定查找每个元素的概率都相等)。
(n+1)/2
37在双链表中,在q所指结点后面插入内存r所指结点的关键操作。
r->left=q;r->right=q->right;q->right->left=r;q->right=r;