0012数据结构.docx
- 文档编号:9242924
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:19
- 大小:77.46KB
0012数据结构.docx
《0012数据结构.docx》由会员分享,可在线阅读,更多相关《0012数据结构.docx(19页珍藏版)》请在冰点文库上搜索。
0012数据结构
[0012]《数据结构》
第一次作业
[填空题]
1、已知栈的基本操作函数:
intInitStack(SqStack*S);//构造空栈
intStackEmpty(SqStack*S);//判断栈空
intPush(SqStack*S,ElemTypee);//入栈
intPop(SqStack*S,ElemType*e);//出栈
函数conversion实现十进制数转换为八进制数,请将函数补充完整。
voidconversion(){
InitStack(S);
scanf("%d”,&N);
while(N){
(1);
N=N/8;
}
while(
(2)){
Pop(S,&e);
printf("%d”,e);
}
}//conversion
2.设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为。
3.在一个单链表中删除p所指结点的后继结点时,应执行以下操作:
q=p->next;
p->next=____;
4.一个算法的效率可分为( )效率和()效率。
5.数据结构被形式地定义为(D,R),其中D是( )的有限集合,R是D上的( )有限集合。
6.下面程序段的时间复杂度是()。
for(i=0;i for(j=0;j a[i][j]=i*j; 参考答案: 1. (1)Push(S,N%8) (2)! StackEmpty(S) 2. 61 3. q->next 4. 时间 空间 5. 数据元素 关系 6. m*n [单选题]一个具有n个顶点的有向图最多有()条边 A: n×(n-1)/2 B: n×(n+1)/2 C: n×(n-1) D: n2 参考答案: B [判断题]折半查找只适用于有序表,包括有序的顺序表和链表 参考答案: 错误 [判断题]用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。 参考答案: 正确 [判断题]在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种随机存取结构。 参考答案: 错误 [单选题]判断一个循环队列Q(最多n个元素)为满的条件是: A: Q->front==(Q->rear+1)%n B: Q->rear==Q->front+1 C: Q->front==(Q->rear-1)%n D: Q->rear==Q->front 参考答案: A [单选题]在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是: A: p=p->next B: p=p->next->next C: p->next=p D: p->next=p->next->next 参考答案: D [单选题]在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是: A: p->next=q;q->prior=p;p->next->prior=q;q->next=q; B: q->prior=p;q->next=p->next;p->next->prior=q;p->next=q; C: q->next=p->next;q->prior=p;p->next=q;p->next=q; D: p->next=q;p->next->prior=q;q->prior=p;q->next=p->next; 参考答案: B [多选题]抽象数据类型的组成部分分别为: A: 数据对象 B: 存储结构 C: 数据关系 D: 基本操作 参考答案: ACD [多选题]不具有线性结构的数据结构是: A: 图 B: 栈 C: 广义表 D: 树 参考答案: ACD [多选题] 算法分析的两个主要方面是( ) A: 正确性 B: 简单性 C: 空间复杂度 D: 时间复杂度 参考答案: CD 第二次作业 [单选题]设一棵完全二叉树有300个结点,则共有 个叶子结点 A: 150 B: 152 C: 154 D: 156 参考答案: A [单选题]由3个结点所构成的二叉树有种形态. A: 2 B: 3 C: 4 D: 5 参考答案: D [单选题]设有两个串p和q,求q在p中首次出现的位置的运算称作: A: 连接 B: 模式匹配 C: 求子串 D: 求串长 参考答案: B [单选题] 栈中元素的进出原则是: A: 先进先出 B: 后进先出 C: 栈空则进 D: 栈满则出 参考答案: B [单选题]链表是一种采用存储结构存储的线性表. A: 顺序 B: 星式 C: 链式 D: 网状 参考答案: C [单选题]数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: A: 存储结构 B: 顺序存储结构 C: 逻辑结构 D: 链式存储 参考答案: B [判断题]链表的每个结点中都恰好包含一个指针 参考答案: 错误 [判断题]如果将所有中国人按照生日来排序,则使用哈希排序算法最快 参考答案: 错误 [填空题] 1.数据的存储结构可用四种基本的存储方法表示,它们分别是( ). 2.在具有n个元素的循环队列中,队满时具有个元素. 3.广义表A=((a),a)的表头是( )。 4.稀疏矩阵一般的压缩存储方法有()和()两种。 5.用顺序存储的方法,将完全二叉树中所有结点按层逐个从左到右的顺序存放在一维数组R[1..N]中,若结点R[i]有右孩子,则其右孩子是() 6.如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是() 7.n个顶点的连通图至少有边。 8.已知一个有序表为(11,22,33,44,55,66,77,88,99),则折半查找55需要比较()次。 9.对一棵二叉排序树按( )遍历,可得到结点值从小到大的排列序列。 10.一个序列中有10000个元素,若只想得到其中前10个最小元素,则最好采用()方法 参考答案: 1.顺序、链式、索引、散列 2.n-1 3.(a) 4.三元组 十字链表 5.R[2i+1] 6.连通图 7.n-1 8.1 9.中序 10.堆排序 第三次作业 [单选题]在对n个元素的序列进行排序时,堆排序所需要的附加存储空间是: A: O(log2n) B: O (1) C: O(n) D: O(nlog2n) 参考答案: B [单选题]若需要在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是() A: 快速排序 B: 堆排序 C: 归并排序 D: 直接插入 参考答案: C [单选题]设哈希表长m=14,哈希函数H(key)=keyMOD11。 表中已有4个结点: addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7其余地址为空,如用二次探测再散列处理冲突,则关键字为49的地址为: A: 3 B: 5 C: 8 D: 9 参考答案: C [论述题] 1.设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆列车开出车站的所有可能的顺序。 2.已知二叉树如下图所示,请写出先序遍历、中序遍历和后序遍历序列。 3.编写递归算法,计算二叉树中叶子结点的数目 4. 函数实现单链表的插入算法,请在空格处将算法补充完整。 intListInsert(LinkListL,inti,ElemTypee){ LNode*p,*s;intj; p=L;j=0; while((p! =NULL)&&(j } if(p==NULL||j>i-1)returnERROR; s=(LNode*)malloc(sizeof(LNode)); s->data=e; (1); (2); returnOK; }/*ListInsert*/ 5.对于一个栈,给出输入项A,B,C,D,如果输入项序列为A,B,C,D,试给出全部可能的输出序列。 6.已知二叉树的先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树. 7. 1、已知图G的邻接矩阵如下所示: (1)求从顶点1出发的广度优先搜索序列; (2)根据prim算法,求图G从顶点1出发的最小生成树,要求表示出其每一步生成过程。 (用图或者表的方式均可)。 --[if! vml]--> --[endif]--> --[if! vml]--> --[endif]--> 参考答案: 1. 答: 至少有14种。 ①全进之后再出情况,只有1种: 4,3,2,1 ②进3个之后再出的情况,有3种,3,4,2,13,2,4,13,2,1,4 ③进2个之后再出的情况,有5种,2,4,3,12,3,4,12,1,3,42,1,4,32,1,3,4 ④进1个之后再出的情况,有5种,1,4,3,21,3,2,41,3,4,21,2,3,41,2,4,3 2. 先序: BECFGDH 中序: FEBGCHD 后序: FEGHDCB 3. 法一: 核心部分为: DLR(liuyu*root)/*中序遍历递归函数*/ {if(root! =NULL) {if((root->lchild==NULL)&&(root->rchild==NULL)){sum++;printf("%d\n",root->data);} DLR(root->lchild); DLR(root->rchild);} return(0); } 法二: intLeafCount_BiTree(BitreeT)//求二叉树中叶子结点的数目 { if(! T)return0;//空树没有叶子 elseif(! T->lchild&&! T->rchild)return1;//叶子结点 elsereturnLeaf_Count(T->lchild)+Leaf_Count(T->rchild);//左子树的叶子数加 上右子树的叶子数 }//LeafCount_BiTree 4. (1)s->next=p->next (2)p->next=s 5. ABCDABDCACDBACBDADCBBACDBADCBCADBCDA CBDACBADCDBADCBA 6. --[if! vml]--> --[endif]--> 7. (1)广度优先遍历序列: 1;2,3,4;5;6 (2)最小生成树(prim算法) 第四次作业 [论述题] 1.写出用直接插入排序将关键字序列{54,23,89,48,64,50,25,90,34}排序过程的每一趟结果。 2.设待排序序列为{10,18,4,3,6,12,1,9,15,8}请写出希尔排序每一趟的结果。 增量序列为5,3,2,1。 3.写出下列程序的时间复杂度 for(i=0;i for(j=0;j A[i][j]=0; 4.写出下列程序的时间复杂度 s=0; fori=0;i for(j=0;j s+=B[i][j]; sum=s; 5. 设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有 ①front=11,rear=19;②front=19,rear=11;问在这两种情况下,循环队列中各有元素多少个? 6. 若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间. 7.在一个长度为n的顺序表中删除第i个元素,需要向前移动()个元素. 8.带头结点的单链表head为空的判定条件是()。 9.一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为: 。 10.设串长为n,模式串长为m,则KMP算法所需的附加空间为() 参考答案: 1. 初始: 54,23,89,48,64,50,25,90,34 1: (23,54),89,48,64,50,25,90,34 2: (23,54,89),48,64,50,25,90,34 3: (23,48,54,89),64,50,25,90,34 4: (23,48,54,64,89),50,25,90,34 5: (23,48,50,54,64,89),25,90,34 6: (23,25,48,50,54,64,89),90,34 7: (23,25,48,50,54,64,89,90),34 8: (23,25,48,50,54,64,89,90,34) 2. 初始: 10,18,4,3,6,12,1,9,15,8 d=5: 10,1,4,3,6,12,18,9,15,8 d=3: 3,1,4,8,6,12,10,9,15,18 d=2: 3,1,4,8,6,9,10,12,15,18 d=1: 1,3,4,6,8,9,10,12,15,18 3.O(m*n) 4.O(n^2) 5. (1) L=(40+19-11)%40=8 (2)L=(40+11-19)%40=32 6.顺序表 7.n-1 8. head->next==NULL 9.(rear-front+M)%M 10.O(m) [单选题]计算机算法必须具备输入、输出和等5个特性 A: 易读性、稳定性和安全性 B: 确定性、有穷性和稳定性 C: 可行性、可移植性和可扩充性 D: 可行性、确定性和有穷性 参考答案: D [单选题]有8个结点的无向图最多有条边 A: 112 B: 56 C: 28 D: 14 参考答案: C [单选题]不含任何结点的空树 A: 是一棵树 B: 是一棵二叉树 C: 是一棵树也是一棵二叉树 D: 既不是树也不是二叉树 参考答案: C [单选题]一棵深度为6的满二叉树有 个分支结点 A: 30 B: 31 C: 32 D: 33 参考答案: B [单选题] 把一棵树转换为二叉树后,这棵二叉树的形态是 A: 唯一的 B: 有多种 C: 有多种,但根结点都没有左孩子 D: 有多种,但根结点都没有右孩子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0012 数据结构
![提示](https://static.bingdoc.com/images/bang_tan.gif)