自考问答 自考本科自考百科
自考问答 > 自考百科 > 数据结构自考答案

数据结构自考答案

发布时间:

数据结构自考答案

发布时间:

数据结构自考答案

一.

1,复杂性   2.线性结构  非线性结构

3.可以按序号随机存取  4.数据元素

5.后进先出  6.n    7.只能在队头进行

9.长度 1  深度  1

10  -+A*BC/DE

11

12 顶点Vp到顶点Vq之间的路径是指定的序列Vp,Vi1,Vi2•••Vim,Vq。

13 n(n-2)/2    14  n—1     15   2n—1

17 一种存储结构

19可以从表中任意结点开始遍历整个链表;只用一个指向尾结点的指针对链表头、尾进行操作,提高了效率。

20栈是仅限制在表的一端进行插入和删除的运算的线性表,是一种操作受限的线性表。

二.

1算法 的时间复杂度和空间复杂度

2.队列

3.

4嵌套集合表示法,广义表表示法,凹入表示法

5. 45    6.S(1) X(1) S(2)S(3)X(3)S(4)X(4)X(2)

7(1) O(nˆ2)

(2) O(nˆ2)

8.

哈夫曼树:

WPL=2*5+4*5+5*4+16*3+8*3+7*3+30=173

9.邻接矩阵:

邻接表:

10.二叉树:

前序:ABCEFD

中序:BEFCDA

后序:FEDCBA

strcut node{strcut node1{char a ;node1 *next ;}node1;strcut node2{int a ;node2 *next ;}node2;strcut node3{long a ;node3 *next ;}node3;}node;用这个结构体就可以解决你要的问题了L1 = node.node1.next;L2 = node.node2.next;L3 = node.node3.next; 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快! vaela

全国2008年10月高等教育自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是最符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是( )A. 栈 B. 队列C. 树 D. 图2.下面程序段的时间复杂度为( )for (i=0; inext==head B. p->next->next==headC. p->next==NULL D. p==head4.若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列是( )A. SXSSXXXX B. SXXSXSSXC. SXSXXSSX D. SSSXXSXX5.两个字符串相等的条件是( )A. 串的长度相等 B. 含有相同的字符集C. 都是非空串 D. 串的长度相等且对应的字符相同6.如果将矩阵An×n的每一列看成一个子表,整个矩阵看成是一个广义表L,即L=((a11,a21,…,an1),( a12,a22,…,an2),…,(a1n,a2n,…,ann)),并且可以通过求表头head和求表尾tail的运算求取矩阵中的每一个元素,则求得a21的运算是( )A. head (tail (head (L))) B. head (head(head(L)))C. tail (head (tail (L))) D. head (head (tail (L)))7.已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为( )A. 0 B. 1C. 48 D. 498.在一个具有n个顶点的有向图中,所有顶点的出度之和为Dout ,则所有顶点的入度之和为( )A. Dout B. Dout-1C. Dout+1 D. n9.如图所示的有向无环图可以得到的拓扑序列的个数是( )A. 3 B. 4C. 5 D. 610.如图所示的带权无向图的最小生成树的权为( )A. 51 B. 52C. 54 D. 5611.对长度为n的关键字序列进行堆排序的空间复杂度为( )A. O(log2n) B. O(1)C. O(n) D. O(n*log2n)12.已知用某种排序方法对关键字序列(51,35,93,24,13,68,56,42,77)进行排序时,前两趟排序的结果为(35,51,24,13,68,56,42,77,93)(35,24,13,51,56,42,68,77,93)所采用的排序方法是( )A. 插入排序 B. 冒泡排序C. 快速排序 D. 归并排序13.已知散列表的存储空间为T[0..18],散列函数H(key)=key%17,并用二次探测法处理冲突。散列表中已插入下列关键字:T[5]=39,T[6]=57和T[7]=7,则下一个关键字23插入的位置是( )A. T[2] B. T[4]C. T[8] D. T[10]14.适宜进行批量处理的文件类型是( )A. 顺序文件 B. 索引顺序文件C. 散列文件 D. 多关键字文件15.VSAM文件的索引结构为( )A. B+树 B. 二叉排序树C. B-树 D. 最优二叉树二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。16.如果某算法对于规模为n的问题的时间耗费为T(n)=3n3,在一台计算机上运行时间为t秒,则在另一台运行速度是其64倍的机器上,用同样的时间能解决的问题规模是原问题规模的 倍。17.将两个长度分别为m和n的递增有序单链表,归并成一个按元素递减有序的单链表,可能达到的最好的时间复杂度是 。18.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则在队列不满的情况下,队列的长度是 。19.字符串“sgabacbadfgbacst” 中存在有 个与字符串“ba”相同的子串。20.假设以列优先顺序存储二维数组A[5][8],其中元素A[0][0]的存储地址为LOC(a00),且每个元素占4个存储单元,则数组元素A[i][j]的存储地址为 。21.假设用表示树的边(其中x是y的双亲),已知一棵树的边集为{,,,,,},该树的度是 。22.n个顶点且含有环路的无向连通图中,至少含有 条边。23.在一般情况下用直接插入排序、选择排序和冒泡排序的过程中,所需记录交换次数最少的是 。24.和二分查找相比,顺序查找的优点是除了不要求表中数据元素有序之外,对 结构也无特殊要求。25.顺序文件中记录存放的物理顺序和 顺序一致。三、解答题(本大题共4小题,每小题5分,共20分)26.由森林转换得到的对应二叉树如图所示,写出原森林中第三棵树的前序序列和后序序列。前序序列:后序序列:27.图的邻接表的类型定义如下所示:#define MaxVertexNum 50typedef struct node {int adjvex;struct node *next;}EdgeNode;typedef struct {VertexType vertex;EdgeNode *firstedge;}VertexNode;typedef VertexNode AdjList[MaxVertexNum];typedef struct {AdjList adjlist;int n, e;}ALGraph;为便于删除和插入图的顶点的操作,可将邻接表的表头向量定义为链式结构,两种定义的存储表示实例如下图所示,请写出重新定义的类型说明。题27图28.某类物品的编号由一个大写英文字母及2位数字(0..9)组成,形如E32。运用基数排序对下列物品编号序列进行按字典序的排序,写出每一趟(分配和收集)后的结果。E13,A37,F43,B32,B47,E12,F37,B12第一趟:第二趟:第三趟:29.(1)画出对表长为13的有序顺序表进行二分查找的判定树;(2)已知关键字序列为(12,14,16,21,24,28,35,43,52,67,71,84,99),写出在该序列中二分查找37时所需进行的比较次数。(1)(2)四、算法阅读题(本大题共4小题,每小题5分,共20分)30.已知线性表的存储结构为顺序表,阅读下列算法,并回答问题:(1)设线性表L=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&L)后的L状态;(2)简述算法f30的功能。void f30 (SeqList *L) {int i,j;for (i=j=0;ilength; i++)if(L->data[i]>=0){if(i!=j)L->data[j]=L->data[i];j++;}L->length=j;}(1)(2)31.阅读下列算法,并回答问题:(1)Q、Q1和Q2都是队列结构,设队列Q=(1,0,-5,2,-4,-6,9),其中1为队头元素,写出执行f31 (&Q,&Q1,&Q2)之后队列Q、Q1和Q2的状态;(2)简述算法f31的功能。(注:lnitQueue、EnQueue、DeQueue和QueueEmpty分别是队列初始化、入列、出队和判队空的操作)void f31 (Queue*Q, Queue*Q1, Queue*Q2) {int e;lnitQueue (Q1);lnitQueue (Q2);while (!QueueEmpty (Q)) {e=DeQueue (Q);if (e>=0) EnQueue (Q1,e);else EnQueue (Q2,e)}}(1)(2)32.阅读下列算法,并回答问题:(1)假设串由合法的英文字母和空格组成,并以’\0’作结束符。设串s=”⊔⊔|⊔am⊔a⊔⊔⊔student”(⊔表示空格符),写出f32(s)的返回值;(2)简述算法f32的功能。int f32 (char*s){int i, n, inword;n=inword=0;for (i=0;s[i]!=’\0’;i++)if (s[i]!=’⊔’&& inword==0){inword=1;n++;}else if (s[i]==’⊔’&& inword==1)inword=0;return n;}(1)(2)33.阅读下列对正整数关键字序列L操作的算法,并回答问题:(1)设L=(28,19,27,49,56,12,10,25,20,50),写出f33 (L,4)的返回值;(2)简述函数f33的功能。int Partition (SeqList*L, int low, int high);‖对L[low..high]做划分,返回基准记录的位置,并使左部的关键字‖都小于或等于基准记录的关键字,右部的关键字都大于基准记录的关键字int f33 (SeqList L, int k){int low, high, pivotpos;low=1;high=L.length;if (khigh)return-1;do {pivotpos=Partition (&L, low, high);‖调用快速排序的划分算法if (pivotposk)high=pivotpos-1;}while (pivotpos!=k);return L.data [pivotpos];}(1)(2) 五、算法设计题(本题10分)34.二叉排序树的类型定义如下:typedef struct BSTNode {‖ 二叉排序树的结点结构int data; ‖数据域struct BSTNode *lchild, *rchild; ‖左、右孩子指针}BSTNode,*BSTree;设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。

2020自考数据结构答案

accacdbc

数据结构笔试题和答案

数据结构笔试题和答案:

1. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作:

q=head;

while (q->next!=p) q=q->next;

s= new Node; s->data=e;

q->next= ; //填空

s->next= ; //填空

2. 线性表的顺序存储结构是一种 的存储结构,而链式存储结构是一种___的存储结构。

A.随机存取 B.索引存取 C.顺序存取 D.散列存取

3. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址___。

A. 必须是连续的 B. 部分地址必须是连续的

C. 一定是不连续的 D. 连续或不连续都可以

4. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行____。

A. s->next=p->next; p->next=s; B. p->next=s->next; s->next=p;

C. q->next=s; s->next=p; D. p->next=s; s->next=q;

5. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行____。

A. s->next=p; p->next=s; B. s->next=p->next; p->next=s;

C. s->next=p->next; p=s; C. p->next=s; s->next=p;

6. 在一个单链表中,若删除p所指结点的后续结点,则执行____。

A. p->next= p->next->next; B. p= p->next; p->next= p->next->next;

C. p->next= p->next; D. p= p->next->next;

7. 链表不具备的特点是 ____ 。

A 可随机访问任何一个元素 B 插入、删除操作不需要移动元素

C 无需事先估计存储空间大小 D 所需存储空间与线性表长度成正比

8. 以下关于线性表的说法不正确的是 。

A 线性表中的`数据元素可以是数字、字符、记录等不同类型。

B 线性表中包含的数据元素个数不是任意的。

C 线性表中的每个结点都有且只有一个直接前趋和直接后继。

D 存在这样的线性表:表中各结点都没有直接前趋和直接后继。

9. 在一个长度为n的顺序表中删除第i个元素,要移动 个元素。如果要在第i个元素前插入一个元素,要后移( )个元素。 N-I N-I+1

答案

1.q->next=s;

s->next=p;

2.A/C(这题是考察对概念的理解,可参考第7题,“顺序表才能随即存取,而链表不可以”)

3.D

4.C

5.B

6.A

7.A(此题绝对选A,因为链表只能根据他的前一个结点才能找到下一个结点,不具备随即访问元素的功能)

8.C

9.n-i; n-i+1

更多的相关笔试题目推荐:

融捷科java软件工程师技笔试题      运营维护工程师笔试题      中国银行计算机方向笔试题目

第18题 (2) 分 对线性表进行二分查找时,要求线性表必须( )。C、顺序存储,且结点按关键字有序排序 第19题 (2) 分 下面关于B树和B+树的叙述中,不正确的是C、都能有效地支持顺序检索 第20题 (2) 分 设输入序列为A,B,C,D,借助一个栈得到的输出序列不可能是( )。C、DABC 第21题 (2) 分 连通图是指图中任意两个顶点之间( )。A、都连通的无向图 第22题 (2) 分 设有向图n个顶点和e条边,进行拓扑排序时,总的计算时间为( )。D)O(n+e)第23题 (2) 分 从理论上讲,将数据以( )结构存放,查找一个数据的时间不依赖于数据的个数n。C、散列表 第24题 (2) 分 n个记录直接选择排序时所需的记录最多交换次数是( )。A、n-1 第25题 (2) 分 连通网的最小生成树是其所有生成树中( )。D、边的权值之和最小的生成树

( )逻辑结构相同但存储不同 可以是不同的数据结构 例如 线性表的逻辑结构属于线性结构 采用顺序存储结构为顺序表 而采用链式存储结构称为线性链表

( )栈和队列的逻辑结构相同 其存储表示也可相同(顺序存储和链式存储) 但由于其运算集合不同而成为不同的数据结构

( )数据结构的评价非常复杂 可以考虑两个方面 一是所选数据结构是否准确 完整的刻划了问题的基本特征;二是是否容易实现(如对数据分解是否恰当;逻辑结构的选择是否适合于运算的功能 是否有利于运算的实现;基本运算的选择是否恰当 )

评价好的算法有四个方面 一是算法的正确性;二是算法的易读性;三是算法的健壮性;四是算法的时空效率(运行)

( )见上面题 ( )见上面题 ( )见上面题

( )算法的时间复杂性是算法输入规模的函数 算法的输入规模或问题的规模是作为该算法输入的数据所含数据元素的数目 或与此数目有关的其它参数 有时考虑算法在最坏情况下的时间复杂度或平均时间复杂度

( )算法是对特定问题求解步骤的描述 是指令的有限序列 其中每一条指令表示一个或多个操作 算法具有五个重要特性 有穷性 确定性 可行性 输入和输出

( )频度 在分析算法时间复杂度时 有时需要估算基本操作的原操作 它是执行次数最多的一个操作 该操作重复执行的次数称为频度

集合 线性结构 树形结构 图形或网状结构 逻辑结构 存储结构 操作(运算)

通常考虑算法所需要的存储空间量和算法所需要的时间量 后者又涉及到四方面 程序运行时所需输入的数据总量 对源程序进行编译所需时间 计算机执行每条指令所需时间和程序中指令重复执行的次数

D是数据元素的有限集合 S是D上数据元素之间关系的有限集合

数据结构 这一术语有两种含义 一是作为一门课程的名称;二是作为一个科学的概念 作为科学概念 目前尚无公认定义 一般认为 讨论数据结构要包括三个方面 一是数据的逻辑结构 二是数据的存储结构 三是对数据进行的操作(运算) 而数据类型是值的集合和操作的集合 可以看作是已实现了的数据结构 后者是前者的一种简化情况

见上面题

将学号 姓名 平均成绩看成一个记录(元素 含三个数据项) 将 个这样的记录存于数组中 因一般无增删操作 故宜采用顺序存储

typedef struct

{int num;//学号

char name[ ];//姓名

float score;/平均成绩

}node;

node student[ ];

见上面题 ( )

应从两方面进行讨论 如通讯录较少变动(如城市私人电话号码) 主要用于查询 以顺序存储较方便 既能顺序查找也可随机查找;若通讯录经常有增删操作 用链式存储结构较为合适 将每个人的情况作为一个元素(即一个结点存放一个人) 设姓名作关键字 链表安排成有序表 这样可提高查询速度

线性表中的插入 删除操作 在顺序存储方式下平均移动近一半的元素 时间复杂度为O(n);而在链式存储方式下 插入和删除时间复杂度都是O( )

对算法A 和A 的时间复杂度T 和T 取对数 得nlog 和 logn 显然 算法A 好于A

struct node

{int year month day; };

typedef struct

{int num;//帐号

char name[ ];//姓名

struct node date;//开户年月日

int tag;//储蓄类型 如 零存 一年定期……

float put;//存入累加数;

float interest;//利息

float total;//帐面总数

}count;

( )n ( )n+ ( )n ( )(n+ )(n )/ ( )(n+ )(n )/ ( )n

自学考试数据结构答案

全国2009年1月高等教育自学考试数据结构试题课程代码02331答案急求。。谢谢。。最好答案和题都有。。尤其是答案。。谢谢啦。。

第六题选B,因为完全二叉树的深度h满足:2^i-1=100;可以算出i=7时为128;

数据结构导论试题和答案已经发到你邮箱里去了,你会给我分数吗?我相信你,你一定会给我的.

自考数据结构真题答案

没的。我找了好多。自己买本练习册吧。。。

先看一遍书,然后自己做练习,不会的翻书找答案,然后详细标注,这样有目的的学习,效果才好!

深度的递归算法int depth(BiTreeNode * T){ if(T==NULL) return 0; //  如果结点为空,高度为0 else { int h1= depth(T->lchild); //  获得左子树的高度 int h2= depth(T->rchild); //  获得右子树的高度 return max(h1,h2)+1; }}

全国2003年上半年自考数据结构答案及标准评分 2006年10月自学考试"数据结构"试题参考答案 很多数据结构试题 自考用的数据结构课后答案 DOC文件,很大,现只复制最前面的一小部分,如需要,提供邮箱,我发给你(还有“数据结构试题及答案”) 第一章 绪论 1.1 简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。 ● 数据:指能够被计算机识别、存储和加工处理的信息载体。 ● 数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。数据元素有时可以由若干数据项组成。 ● 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。通常数据类型可以看作是程序设计语言中已实现的数据结构。 ● 数据结构:指的是数据之间的相互关系,即数据的组织形式。一般包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。 ● 逻辑结构:指数据元素之间的逻辑关系。 ● 存储结构:数据元素及其关系在计算机存储器内的表示,称为数据的存储结构. ● 线性结构:数据逻辑结构中的一类。它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都有且只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构。栈、队列、串等都是线性结构。 ● 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。数组、广义表、树和图等数据结构都是非线性结构。 1.2 试举一个数据结构的例子、叙述其逻辑结构、存储结构、运算三个方面的内容。 答: 例如有一张学生体检情况登记表,记录了一个班的学生的身高、体重等各项体检信息。这张登记表中,每个学生的各项体检信息排在一行上。这个表就是一个数据结构。每个记录(有姓名,学号,身高和体重等字段)就是一个结点,对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继(它的前面和后面均有且只有一个记录)。这几个关系就确定了这个表的逻辑结构是线性结构。 这个表中的数据如何存储到计算机里,并且如何表示数据元素之间的关系呢? 即用一片连续的内存单元来存放这些记录(如用数组表示)还是随机存放各结点数据再用指针进行链接呢? 这就是存储结构的问题。 在这个表的某种存储结构基础上,可实现对这张表中的记录进行查询,修改,删除等操作。对这个表可以进行哪些操作以及如何实现这些操作就是数据的运算问题了。 1.3 常用的存储表示方法有哪几种? 答: 常用的存储表示方法有四种: ● 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构,通常借助程序语言的数组描述。 ● 链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示。由此得到的存储表示称为链式存储结构,通常借助于程序语言的指针类型描述。 ● 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。组成索引表的索引项由结点的关键字和地址组成。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense Index)。若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引。 ● 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。 1.4 设三个函数f,g,h分别为 f(n)=100n3+n2+1000 , g(n)=25n3+5000n2 , h(n)=n1.5+5000nlgn 请判断下列关系是否成立: (1) f(n)=O(g(n)) (2) g(n)=O(f(n)) (3) h(n)=O(n1.5) (4) h(n)=O(nlgn) 分析: 数学符号"O"的严格的数学定义: 若T(n)和f(n)是定义在正整数集合上的两个函数,则T(n)=O(f(n))表示存在正的常数C和n0,使得当n≥n0时都满足0≤T(n)≤C•f(n)。 通俗地说,就是当n→∞时,f(n)的函数值增长速度与T(n)的增长速度同阶。一般,一个函数的增长速度与该函数的最高次阶同阶。 即: O(f(n))=n3 O(g(n))=n3 O(h(n))=n1.5 所以答案为: 答: ●(1)成立。 ●(2)成立。 ●(3)成立。 ●(4)不成立。

2020自考数据结构真题答案

【免费定制个人学历提升方案和复习资料: 】自考报名后无法注销,如果不想继续进行,放弃剩余科目即可。 自考的考籍近似于学籍,但自考只有考籍,没有学籍。参加自学考试的学生,在取得一门课程合格证书后,所在招考办即要为其建立考籍管理档案。省份不同考籍保留年限也不同。在有些省份,自考考籍是长期有效的,也就是说,你只要注册了自考考籍,没有考完所有科目并合格,你就可以一直考下去;而在有些省份考籍是有时间限制的,一般为8年,8年内考籍都是有效的,8年后,没有完成你所报考的专业的所有科目的考核,已经合格的科目成绩就会取消,考籍也会失效。具体自己的省份的考籍是执行什么政策,可以到所在省份的考试院去确认一下。自考报名下方免费学历提升方案介绍: 2020年10月自考02331数据结构真题试卷 格式:PDF大小:378.68KB 2018年04月自考00915电子商务与现代物流真题试卷 格式:PDF大小:285.07KB 2019年10月自考11749商务管理综合应用真题试卷 格式:PDF大小:382.61KB 2019年10月自考06088管理思想史真题试卷 格式:PDF大小:221.17KB自考/成考考试有疑问、不知道自考/成考考点内容、不清楚自考/成考考试当地政策,点击底部咨询猎考网,免费获取个人学历提升方案:

strcut node{strcut node1{char a ;node1 *next ;}node1;strcut node2{int a ;node2 *next ;}node2;strcut node3{long a ;node3 *next ;}node3;}node;用这个结构体就可以解决你要的问题了L1 = node.node1.next;L2 = node.node2.next;L3 = node.node3.next; 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快! vaela

  •   索引序列
  •   数据结构自考答案
  •   2020自考数据结构答案
  •   自学考试数据结构答案
  •   自考数据结构真题答案
  •   2020自考数据结构真题答案
  •   返回顶部

自考地区